1

我的班级标题中有这个:

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 ) )')

我看到的唯一区别是 void* 与 void 我不知道为什么。谁能帮我弄清楚为什么我会收到这个错误?谢谢。

4

1 回答 1

1

您正在nil使用返回类型返回块中的值void。删除return nil线。

于 2013-06-12T18:03:57.293 回答