1

我有一个障碍;

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

我不知道这是什么意思。有人可以解释发生了什么吗?谢谢

4

1 回答 1

5

这似乎SIResponseHandler是一种块类型,因此不应*在参数列表中作为指针后缀,除非您确切知道自己在做什么。

于 2013-03-02T19:10:20.150 回答