iOS - AFNetworking 在 AFURLResponseSerialization.m 的第 577 行崩溃
iOS - AFNetworking crashing on line 577 of AFURLResponseSerialization.m
我在我的应用程序中实施延迟加载策略,我使用 AFNetworking
在 UITableView
中异步加载新闻图片。这是在我的 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 出于某种原因:
使用UIImage+AFNetworking。
它延迟加载并支持图像缓存。
在你的情况下,你可以使用这个:
UIImage *image = [UIImage imageWithData:responseObject];
但最好的方法是使用 UIImage+AFNetworking。
显然我解决了这个问题。任何图像都没有问题。我只需要禁用 Xcode 中的所有断点就可以了。很奇怪,但它解决了问题。
我在我的应用程序中实施延迟加载策略,我使用 AFNetworking
在 UITableView
中异步加载新闻图片。这是在我的 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 出于某种原因:
使用UIImage+AFNetworking。 它延迟加载并支持图像缓存。
在你的情况下,你可以使用这个:
UIImage *image = [UIImage imageWithData:responseObject];
但最好的方法是使用 UIImage+AFNetworking。
显然我解决了这个问题。任何图像都没有问题。我只需要禁用 Xcode 中的所有断点就可以了。很奇怪,但它解决了问题。