我试图添加一个成功和错误块来检查何时加载映像,以便可以使用NSCache动态调整映像大小。但是当我尝试

[scribbleImage setImageWithURL: [NSURL URLWithString:scribble[@"scribble_image"]] placeholderImage:[UIImage imageNamed:@"Default.png"] success:^(UIImage *image) {
NSLog(@"done");
} failure:^(NSError *error) {
NSLog(@"error %@",error);
}];


Xcode给我一个错误,说No visible @interface for 'UIImageView' declares the selector 'setImageWithURL:placeholderImage:success:failure:'

我不知道为什么。

PS。我正在导入UIImageView + AFNetworking.h,并且一切正常,没有成功和失败的障碍

最佳答案

这是因为没有方法setImageWithURL:placeholderImage:success:failure:只有setImageWithURLRequest:placeholderImage:success:failure:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:scribble[@"scribble_image"]]];

[scribbleImage setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"Default.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
    NSLog(@"Done");
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
    NSLog(@"Failed with error: %@", error);
}];


如果您查看setImageWithURL:placeholderImage:的作用:

- (void)setImageWithURL:(NSURL *)url
       placeholderImage:(UIImage *)placeholderImage
{
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setHTTPShouldHandleCookies:NO];
    [request addValue:@"image/*" forHTTPHeaderField:@"Accept"];

    [self setImageWithURLRequest:request placeholderImage:placeholderImage success:nil failure:nil];
}


您会看到这也是用于内部获取的方法。

10-05 17:43