Ios AFX2B;显示UIImageView占位符图像,但不显示URL图像

Ios AFX2B;显示UIImageView占位符图像,但不显示URL图像,ios,ios5,uiimageview,afnetworking,Ios,Ios5,Uiimageview,Afnetworking,我正在尝试使用AFUIImageView调用从URL加载图像,如下所示: [self.image setImageWithURL:[NSURL URLWithString:feed.imageURL] placeholderImage: [UIImage imageNamed:@"logo"]]; 占位符图像始终显示,但“feed.imageURL”中的实际图像从不显示。我已经验证了URL实际上是正确的。我甚至把它硬编码以确保,但仍然没有 我的基本应用程序设置是一个选项卡控制器……在v

我正在尝试使用AFUIImageView调用从URL加载图像,如下所示:

[self.image setImageWithURL:[NSURL URLWithString:feed.imageURL] placeholderImage:     [UIImage imageNamed:@"logo"]];
占位符图像始终显示,但“feed.imageURL”中的实际图像从不显示。我已经验证了URL实际上是正确的。我甚至把它硬编码以确保,但仍然没有

我的基本应用程序设置是一个选项卡控制器……在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];

所有操作UI的操作都必须在主线程上执行。因此,在完成块中重新加载tableview数据时,可能需要使用“performSelectorOnMainThread:”

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]

原来我请求图像的服务器正在发送
内容类型“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];
}

它解决了我的问题。

我也有类似的问题,但结果是我传递了一个包含空格的URL。当我使用
stringbyaddingpercentescapesusingencode:
正确编码URL时,图像现在加载。

您可以通过此库接受所需的
内容类型,只需更改
请求即可:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:yourURL];
[request addValue:@"image/*" forHTTPHeaderField:@"Accept"];
并调用AFNetworking方法:

AFJSONRequestOperation *operation = [AFJSONRequestOperation
                                     JSONRequestOperationWithRequest:request
                                     success:^(NSURLRequest *request, NSHTTPURLResponse   *response, id JSON) {
                                     } failure:^(NSURLRequest *request,   NSHTTPURLResponse *response, NSError *error, id JSON) {
                                     }];

这样,您就可以在不更改库的情况下覆盖
内容类型

默认情况下,AFNetworking不支持图像/jpg MIME类型

您可以在不修改AFNetworking库的情况下支持它

[AFImageRequestOperation addAcceptableContentType:@"image/jpg"];

您的图像是否在UITableViewCells中?您是否在
cellforrowatinexpath:
委托方法中调用
setImageWithURL
?是的,回答您的两个问题。能否在
表视图:cellforrowatinexpath:
中包含用于设置远程图像的代码?马特,该代码已包含在内。这是我帖子的顶部。好建议Jonkroll,对我的事业没有帮助。FWIW,默认情况下,所有AFNetworking回调块都已经在主线程上执行了。你让我很开心!对于AFNetworking 2.0,它是
self.acceptableContentTypes=[[NSSet alloc]initWithObjects:@“image/tiff”、@“image/jpeg”、@“image/jpg”、@“image/gif”、@“image/png”、@“image/x-icon”、@“image/bmp”、@“image/x-bmp”、@“image/x-xbitmap”、@“image/x-win-bitmap”、nil]
在AFURLResponseSerialization.m中,我应该如何使用它,我想我也有同样的问题!