【发布时间】:2015-09-29 09:12:15
【问题描述】:
我正在调用一个块来下载表格单元格图像。
[self downloadImageWithURL:aa completionBlock:^(BOOL succeeded, UIImage *image) {
if (succeeded) {
cell.imageView.image = image;
((DatabaseHelper *) [upcoming objectAtIndex:indexPath.row]).image = image;
}
}];
- (void)downloadImageWithURL:(NSURL *)url completionBlock:(void (^)(BOOL succeeded, UIImage *image))completionBlock
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ( !error )
{
UIImage *image = [[UIImage alloc] initWithData:data];
completionBlock(YES,image);
} else{
completionBlock(NO,nil);
}
}];
}
它工作得非常好......但问题是,一旦调用任何单元格,如果我在异步请求完成之前删除该单元格,应用程序就会崩溃。 那么当我删除单元格时,如何从 NSoperation 队列中删除调用。
【问题讨论】:
标签: ios uitableview nsurlconnection objective-c-blocks