【问题标题】:Best image cache for loading numerous images in UITableView for IOS?在 iOS 的 UITableView 中加载大量图像的最佳图像缓存?
【发布时间】:2015-10-28 09:59:24
【问题描述】:

谁能告诉我可用于在 UITableviewcell 中加载大量图像的最佳图像缓存?

目前我正在使用 SDWebimageCache,但它似乎在 IOS9 中造成了问题,尤其是在 iPad 中,表格滚动导致应用程序崩溃。

帮助我使用 SDWebimagecache 替代方案。

我从 SDWebImageCache 使用的类是:

[cell.imgMain sd_setImageWithURL:imageLoadUrl
                    placeholderImage:[UIImage imageNamed:@"*placeholder image*"]
                             options:SDWebImageRefreshCached];

我从 UIIMageView + AFNetworking 使用的类是:

[cell.imgMain setImageWithURLRequest:[NSURLRequest requestWithURL:imageUrl]
                 placeholderImage:[UIImage imageNamed:@"wachizLogoIcon.png"]
                          success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {

                              cell.imgMain.image=image;
                          }
                          failure:nil];

但应用程序仍然崩溃并显示以下屏幕:

IOS 9 中的应用程序崩溃,有时 IOS 8.4 中的应用程序崩溃

请帮助我摆脱这种情况。压力很大...

【问题讨论】:

  • 这与其说是崩溃,不如说是 Xcode 错误 / 问题,它失去了与设备的连接,正如它所说的那样。如果您遇到设备问题,请尝试在模拟器中运行该应用。
  • 我一开始是这么想的。但我 100% 确定不是这样。当我断开电缆时,应用程序仍然崩溃。
  • 进入 Xcode,然后进入断点导航器 (cmd + 7) 并添加一个所有异常断点。并再次运行该应用程序以查看它崩溃的位置。现在;没有足够的信息来帮助解决任何问题。您需要隔离导致问题的违规代码。
  • [cell.imgMain sd_setImageWithURL:imageLoadUrl placeholderImage:[UIImage imageNamed:@"placeholder image"] options:SDWebImageRefreshCached];
  • 如果我对此发表评论,它可以正常工作

标签: objective-c xcode uitableview ios9 image-caching


【解决方案1】:

AFNetworking 有一个很棒的UIImage category,它可以很好地完成这件事,并且适用于iOS9。我在iOS9 上也遇到了SDWebimageCache 的问题。

【讨论】:

  • 谢谢老兄!!您能否请我介绍另一个图像缓存类别类??
  • AFNetworking 有什么问题不能满足您的需求?我在我的项目中使用 AFN 进行网络调用和图像加载。在过去的两年里已经完成了,它是一个非常可靠的库
  • 好的...你能给我提供使用AFnetworking的图像缓存教程吗??
  • 问题不在于您使用的库;这将是你的代码。让两个不同的库崩溃表明您的代码存在问题。使用控制台中显示的相关代码和确切的崩溃日志更新您的问题
【解决方案2】:

看看AsyncImageView

AsyncImageView 包括 UIImageView 上的一个简单类别,用于在 iOS 上异步加载和显示图像,以便它们不会锁定 UI,以及用于更高级功能的 UIImageView 子类。 AsyncImageView 与 URL 一起使用,因此它可以与本地或远程文件一起使用。

加载/下载的图像缓存在内存中,并在出现内存警告时自动清理。 AsyncImageView 独立于 UIImage 缓存运行,但默认情况下,位于应用程序包根目录中的任何图像都将存储在 UIImage 缓存中,以避免缓存图像的任何重复。

该库还可用于独立于 UIImageView 加载和缓存图像,因为它提供对底层加载和缓存类的直接访问

【讨论】:

  • 很抱歉 UITableView 仍然崩溃
【解决方案3】:

您可以使用JMImageCache 在 UITableView 中延迟加载图像

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2023-03-13
    相关资源
    最近更新 更多