尝试返回从Parse.com获取的UIImage时,为什么会出现此错误?

时间:2015-02-23 10:29:54

标签: ios objective-c xcode parse-platform

我在尝试返回从Parse.com获取的UIImage时遇到以下代码时出错:

-(UIImage *)getUserImageForUser:(PFUser *)user {


    PFFile *userImageFile = user[@"profilePic"];
    [userImageFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
        if (!error) {
            UIImage *image = [UIImage imageWithData:imageData];
            [self.images setObject:image forKey:user.username];
            return image;

        }
    }];
    return nil;
}

错误是:不兼容的块指针类型将'UIImage *(^)(NSData * __ strong,NSError * __ strong)'发送到'PFDataResultBlock'类型的参数(又名'void(^)(NSData * __ strong, NSError * __ strong)')

如果我删除了块中的UIImage返回,则没有错误。不知道为什么会这样。我通过最后返回nil来覆盖所有基地。任何人都可以指点一下为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

因为您没有从代码块中返回任何内容。该代码块运行,就是这样,你不需要在那里返回任何东西。

如果您想对该图像执行某些操作,请在代码块中执行此操作。

例如:

[userImageFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
    if (!error) {
        UIImage *image = [UIImage imageWithData:imageData];
        dispatch_async(dispatch_get_main_queue(), ^{
            // do something with image on the main queue, like: 
            self.imageView.image = image
        });
    }
}];