由于UItableview中的内存压力,ios7应用终止

时间:2014-06-10 10:13:02

标签: ios objective-c uitableview uiimageview

uitableview UitableViewcell客户Uiimageview我的单元格保留在Url 我使用UIimageView将图片加载到我的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { ActusCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; NSDictionary *tmpDict = [_MyArray objectAtIndex:indexPath.row]; dispatch_async ( dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0ul), ^{ act_Image=[NSString stringWithFormat:@"http://www.exemple.com/act/%@%@",[tmpDict objectForKey:@"id"],@".jpeg"]; NSURL * imageURL = [ NSURL URLWithString :act_Image ]; NSData * imageDataUrl = [ NSData dataWithContentsOfURL : imageURL ]; dispatch_async ( dispatch_get_main_queue (), ^ { [cell.myimage setImage:[UIImage imageWithData:imageDataUrl]]; }); }); return cell; } ,因此在桌面视图中滚动我的应用崩溃 我的代码来源:

{{1}}

N.B:URl中的图像大小为1.2MB

2 个答案:

答案 0 :(得分:1)

我认为您应该异步加载图像并将其保存在缓存中。因为有太多可用的第三方源。我发现这是最好的 -

1。https://github.com/nicklockwood/AsyncImageView 2。https://github.com/rs/SDWebImage

答案 1 :(得分:0)

问题是由您的调度引起的。他们永远不会取消。 在重复使用单元格时,您应该考虑开始使用NSOperationNSOperationQueue,取消它正在执行的操作。