我在班级标题中有这个:
typedef void(^DBSuccessBlock)();
typedef void(^DBErrorBlock)(int errorNumber, NSString* description);
- (void) connect:(NSString*) path isFile:(BOOL) flag
success:(DBSuccessBlock) success
error:(DBErrorBlock) error;
这就是我尝试调用该方法的方法:
[db connect:filePathName isFile:YES success:^{
// initialize db here if necessary
} error:^(int errorNumber, NSString *description) { //error on this line
NSLog(description);
return nil;
}];
错误行给了我这个编译错误:不兼容的块指针类型发送' void *(^)(int,NSString * _ strong)'参数类型' DBErrorBlock' (又名' void(^)(int,NSString * _strong)')
我看到的唯一区别是无效*与无效,我不知道为什么。任何人都可以帮我弄清楚为什么我会收到这个错误?感谢。
答案 0 :(得分:1)
您将在返回类型为nil
的块中返回值void
。删除return nil
行。