Block:保存一端代碼梧躺,比方法和函數(shù)要靈活
定義一個普通的Block
普通的Block,即無參數(shù)無返回值的Block傲绣,格式如下:
返回值 (Block標(biāo)識 Block名) (參數(shù)) = Block標(biāo)識 參數(shù) {代碼塊};
void (^myBlock) () = ^ () {};
快捷鍵:inlineBlock
Block作參數(shù)(把Block名提出來放在后面做參數(shù)名掠哥,其余部分做參數(shù)類型):
-testBlock:(Block類型(Block標(biāo)識)(Block的參數(shù)))參數(shù)名;
-testBlock:(void(^)())myBlock;
Block調(diào)用
格式:
Block名(參數(shù));
myBlock();
注意:Block會先把需要執(zhí)行的代碼保存起來,在聲明和定義的時候不會調(diào)用
Block傳值
- 接收方需要設(shè)置一個屬性來接收值
- 接收方定義Block來接收值
- 什么時候傳值就在什么時候調(diào)用Block
注意:Block一般用于傳值秃诵,而代理一般在封裝控件的時候使用续搀,因為代理擴(kuò)展性強(qiáng)一些