Block變數的宣告、賦值與呼叫 匿名block
阿新 • • 發佈:2018-12-09
Block變數的宣告、賦值與呼叫
1.Block變數的宣告
//Block變數的宣告格式為: 返回值型別(^Block名字)(引數列表);
// 宣告一個無返回值,引數為兩個字串物件,叫做aBlock的Block
void(^aBlock)(NSString *x, NSString *y);
// 形參變數名稱可以省略,只留有變數型別即可
void(^aBlock)(NSString *, NSString *);
//注: ^被稱作"脫字元"
2.Block變數的賦值
//Block變數的賦值格式為: Block變數 = ^(引數列表){函式體}; aBlock = ^(NSString *x, NSString *y){ NSLog(@"%@ love %@", x, y); }; //注: Block變數的賦值格式可以是: Block變數 = ^返回值型別(引數列表){函式體};,不過通常情況下都將返回值型別省略,因為編譯器可以從儲存程式碼塊的變數中確定返回值的型別
3.匿名block
// 1.定義一個形參為Block的OC函式
- (void)useBlockForOC:(int(^)(int, int))aBlock
{
NSLog(@"result = %d", aBlock(300,200));
}
4.常規定義和使用
/** * 定義一個block * * @param flag */ typedef void (^myBlock)(BOOL flag); @interface Person : NSObject //宣告一個block變數 @property (nonatomic, copy) void(^myBlock)(BOOL); @end