函数指针,一般在iOS开发中,会作为回调方法使用,可以定义在函数的参数中,也可以定义在类的属性变量。
函数指针可以直接作为临时类型,定义属性,也可以先定义类型再初始化对象;
注意:作为属性变量,使用copy修饰
下面是两种形式的创建代码:
直接声明属性
@property(nonatomic, copy) void(^completed)(BOOL result);
先定义类型,再声明
typedef void(^completed)(BOOL result);
@property(nonatomic, copy) completed handler;
函数指针作为函数的参数
-(void)actionWIthId:(id)anyObj callback:(completed)cb{
//todo
if(cb){
cb(YES);
}
}
-(void)actionWIthId:(id)anyObj callback:(void(^)(BOOL))cb{
//todo
if(cb){
cb(YES);
}
}