我有一个区块;
typedef void (^SIResponseHandler) (id obj, NSString *error);
和方法:
+ (void)uploadPhoto:(UIImage *)photo
toPathForComponents:(NSArray *)components
completionHandler:(SIResponseHandler)responseHandler;
和另一种调用上述方法的方法:
+ (void)updateProfilePhoto:(UIImage *)photo handler:(SIResponseHandler *)handler {
NSArray *components = @[@"users", sharedInstance.username, @"profile", @"photo", @"upload"];
[SIRequest uploadPhoto:photo
toPathForComponents:components
progressHandler:nil
completionHandler:handler];
}
在最后一行中,我收到此错误:
Sending '__autoreleasing SIResponseHandler *' (aka 'void (^__autoreleasing *)(__strong id, NSString *__strong)') to parameter of incompatible type 'SIResponseHandler' (aka 'void (^)(__strong id, NSString *__strong)')
我不知道这意味着什么。有人可以解释一下发生了什么吗? 感谢
答案 0 :(得分:5)
似乎SIResponseHandler
是一个块类型,因此不应该在参数列表中作为带有*
的指针加后缀,除非您确切知道自己在做什么。