【问题标题】:iOS - AFNetworking crashing on line 577 of AFURLResponseSerialization.miOS - AFNetworking 在 AFURLResponseSerialization.m 的第 577 行崩溃
【发布时间】:2015-12-22 01:53:58
【问题描述】:

我正在我的应用程序中实现延迟加载策略,我使用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);
                           }];
}

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

关于它为什么崩溃的任何想法?

更新:

我发现由于某种原因它在此图片网址上崩溃了:

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

【问题讨论】:

  • 可能是某些特殊字符会导致这个错误,请尝试使用UTF8对url进行编码。

标签: ios objective-c uitableview afnetworking lazy-loading


【解决方案1】:

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

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

UIImage *image = [UIImage imageWithData:responseObject];

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

【讨论】:

  • 我之前尝试过,但遇到了表格单元格图像分配不正确的问题。我正在按照自己的方式做,因为我遵循了本教程:cocoanuts.mobi/2014/04/27/fastscroll 来解决我当时面临的问题。
  • 尝试移除 responseSerializer 并使用 imageWithData。希望对您有所帮助。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    相关资源
    最近更新 更多