1

我正在尝试在我的应用程序中使用 tableview 显示图像和文本,对于延迟图像下载,我使用 NSBlockOperation 和 NSOPerationQueue 进行图像下载。这样所有的图像请求都将被添加到队列中,并同时启动图像下载。如果您等待几分钟下载所有图像,则在登陆该页面时工作正常。如果一进入此屏幕并返回上一个屏幕,应用程序就会崩溃。我可以理解问题是屏幕不再存在。帮我!我将如何解决这个问题?

感谢你的帮助!!

斯里兰卡

4

3 回答 3

1

如果您想异步下载图像,请查看 github上的此存储库并参考此博客,希望能解决您的问题。对于崩溃放一些代码。

于 2012-10-18T06:45:54.707 回答
0

根据 Apple 的建议,请参阅此内容以进行延迟图像加载

http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html

于 2012-10-18T06:32:16.317 回答
0

解决方案是使用这个库,不需要你设置下载它,库自己处理 - SDWebImage

您只需要到#import <SDWebImage/UIImageView+WebCache.h>您的项目,您还可以在下载图像时使用以下代码定义占位符:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
        static NSString *CellIdentifier;
        CustomCell *cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        MyObject *object = (MyObject *)[self.list.array objectAtIndex:indexPath.row];

        [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
                       placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

        return cell;
}

它还缓存下载的图像并为您提供出色的性能。

于 2014-06-09T10:57:22.107 回答