iOS - AFNetworking 在 AFURLResponseSerialization.m 的第 577 行崩溃

iOS - AFNetworking crashing on line 577 of AFURLResponseSerialization.m

我在我的应用程序中实施延迟加载策略,我使用 AFNetworkingUITableView 中异步加载新闻图片。这是在我的 cellForRowAtIndexPath 方法中执行此操作的以下代码:

@implementation PocketTableViewController

- (AFHTTPRequestOperationManager *)operationManager
{
    if (!_operationManager)
    {
        _operationManager = [[AFHTTPRequestOperationManager alloc] init];
        _operationManager.responseSerializer = [AFImageResponseSerializer serializer];
    };

    return _operationManager;
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    ...
    if (articleImageURL != nil) 
    {
        //set article image
        cell.ThumbImage.image = [UIImage imageNamed:@"greyImage.png"];
        [cell.ThumbImage.associatedObject cancel];
        cell.ThumbImage.associatedObject =
        [self.operationManager GET:[articleImageURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
                        parameters:nil
                           success:^(AFHTTPRequestOperation *operation, id responseObject) {
                               cell.ThumbImage.image = responseObject;
                           } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                               NSLog(@"Failed with error %@.", error);
                           }];
}

当我滚动浏览 table 视图时,它适用于大多数图像,但随后在此处崩溃:

关于崩溃的原因有什么想法吗?

更新:

我发现它在这张图片上崩溃 url 出于某种原因:

http://www.profitconfidential.com/wp-content/uploads/2015/12/Bill-Gates-Bought-Stock-in-Third-Quarter.jpg

使用UIImage+AFNetworking。 它延迟加载并支持图像缓存。

在你的情况下,你可以使用这个:

UIImage *image = [UIImage imageWithData:responseObject];

但最好的方法是使用 UIImage+AFNetworking。

显然我解决了这个问题。任何图像都没有问题。我只需要禁用 Xcode 中的所有断点就可以了。很奇怪,但它解决了问题。