我正在尝试使用AFNetworking UI
ImageView调用从URL加载图像,如下所示:
[self.image setImageWithURL:[NSURL URLWithString:Feed.imageURL] placeholderImage: [UIImage imageNamed:@"logo"]];
占位符图像始终显示,但“Feed.imageURL”中的实际图像永远不会显示.我已经确认该网址确实是正确的.我甚至硬编码以确保,但仍然没有.
我的基本应用程序设置是一个选项卡控制器……在viewDidLoad中,我调用了一个方法“fetchFeed”,它执行HTTP请求来收集我的JSON数据.
我的请求块看起来像:
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request,NSHTTPURLResponse *response,id JSON) { [self parseDictionary:JSON]; isLoading = NO; [self.tableView reloadData]; } failure:^(NSURLRequest *request,NSHTTPURLResponse *response,NSError *error,id JSON) { NSLog(@"Error: %@",error); [self showNetworkError]; isLoading = NO; [self.tableView reloadData]; }]; operation.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html",nil]; [queue addOperation:operation];
解决方法
原来我请求图像的服务器是发送内容类型“image / jpg”,默认情况下AFNetworking不支持此文件类型.
我将AFImageRequestOperation中的类方法更改为:
+ (NSSet *)defaultAcceptableContentTypes { return [NSSet setWithObjects:@"image/tiff",@"image/jpeg",@"image/gif",@"image/png",@"image/ico",@"image/x-icon" @"image/bmp",@"image/x-bmp",@"image/x-xbitmap",@"image/x-win-bitmap",@"image/jpg",nil]; }
它解决了我的问题.