OC中block作方法參數時的用法,ocblock參數用法
方式一、在傳參時直接聲明block回調方法。
1. 定義方法:
- (int)doTest:(NSString *)name success:(int (^)(int param1, int param2))success para1:(int)temp1 para2:(int)temp2
{
int ret = success(temp1, temp2);
NSLog(@"----%@ -- %d--", name, ret);
return ret;
}
2. 調用方法:
[self doTest:@"Tom" success:^int(int param1, int param2) { // 調用 doTest的時候,這個紅色的block在 doTest 中馬上就會調用(見上面藍色代碼)。
return param1 + param2;
} para1:8 para2:15];
===========================================
方式二、用typedef定義一個block別名,在參數中用別名聲明參數是block類型。
1. 聲明一個block方法的類型:
typedef int (^myBlock)(int param1, int param2);
2. 定義方法:
- (int)doTest:(NSString *)name success:(myBlock)success para1:(int)temp1 para2:(int)temp2
{
int ret = success(temp1, temp2);
NSLog(@"----%@ -- %d--", name, ret);
return ret;
}
3. 調用方法:
[self doTest:@"Tom" success:^int(int param1, int param2) {
return param1 + param2;
} para1:8 para2:15];