iOS 用Block寫乙個鏈式程式設計

2021-09-07 15:04:57 字數 1869 閱讀 9805

一、介紹

鏈式程式設計是乙個比較新穎的程式設計方式,簡單直觀,用起來也比較舒服。目前比較有名的mansory和babybluetooth就是使用鏈式程式設計寫的第三方框架。

二、寫法

鏈式程式設計寫法不同於傳統方式,初次寫起來比較彆扭,但是一旦習慣了,用起來比較得心應手。那麼,如何寫呢?其實就是乙個物件呼叫它的例項方法後返回乙個block(已經定義過),而這個block內部又返回該物件。依此類推,該物件不論呼叫多少個它的例項方法,最終都會返回該物件本身。

三、例項

learnmanager類定義和實現

//

//chainprogramming

////

created by 夏遠全 on 2017/9/30.

//#import/**

定義block,返回值型別是learnmanager物件 */

@class

learnmanager;

typedef learnmanager *(^learnchineseblock)(nsstring *chinesename);

typedef learnmanager *(^learnenglishblock)(nsstring *englishname);

typedef learnmanager *(^learnfranchblock) (nsstring *franchname);

@inte***ce

learnmanager : nsobject/**

定義物件方法

@return 返回值是定義過的block */

-(learnchineseblock)learnchinese;

-(learnenglishblock)learnenglish;

-(learnfranchblock)learnfranch;

@end

//

//chainprogramming

//created by 夏遠全 on 2017/9/30.

//#import

"learnmanager.h

"@implementation

learnmanager

-(learnchineseblock)learnchinese;

}-(learnenglishblock)learnenglish;

}-(learnfranchblock)learnfranch;

}@end

viewcontroller類匯入並呼叫

//

//chainprogramming

////

created by 夏遠全 on 2017/9/30.

////

#import

"viewcontroller.h

"#import

"learnmanager.h

"@inte***ce

viewcontroller ()

@end

@implementation

viewcontroller

- (void

)viewdidload

@end

四、列印

2017-09-30

18:41:10.288 chainprogramming[92884:3768713

] 學習語文!

2017-09-30

18:41:10.288 chainprogramming[92884:3768713

] 學習英語!

2017-09-30

18:41:10.289 chainprogramming[92884:3768713] 學習法語!

用golang寫乙個proxy

我複雜的網路環境中,proxy是個很有用的工具,我們可以通過proxy 幫我們完成網路流量的 這個proxy得先能接收請求,所以這裡先啟動乙個tcp的監聽,獲取請求 func s server start glog.infof proxy listen in s,waiting for connec...

用python寫乙個restful API

coding utf 8 package.module python實現的圖書的乙個restful api.restful api 一般模式 get select 從伺服器取出資源 一項或多項 post create 在伺服器新建乙個資源。put update 在伺服器更新資源 客戶端提供改變後的完...

用Python編乙個打小怪獸遊戲

用python編乙個打小怪獸遊戲import random import time while true input 請按回車鍵開始遊戲 print 遇到乙隻小怪獸 print 選擇是否打小怪獸?w input a 打小怪獸 b 不打小怪獸 n print 你的選擇是 w if w a p b ra...