代码之家  ›  专栏  ›  技术社区  ›  Jonathan

无法将成功和失败块与UIImageView+AFNetworking.h一起使用

  •  0
  • Jonathan  · 技术社区  · 13 年前

    我正在尝试添加一个成功和错误块来检查图像何时加载,以便使用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,一切正常,没有成功和失败块

    1 回复  |  直到 13 年前
        1
  •  2
  •   rckoenes    13 年前

    这是因为没有方法 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];
    }
    

    您可以看到,这也是用于在内部获取的方法。