【问题标题】:About memory leak in IOS关于IOS内存泄漏
【发布时间】:2016-09-21 10:43:41
【问题描述】:

我正在使用SDWEBImage 从文档目录加载图像并在UICollectionView 上显示。

我说你“Received memory warning”一直在崩溃。因此,如果有人知道从文档目录加载图像的更好解决方案,请提供帮助。 谢谢。

这是我的内存使用和泄漏问题

要使用SDWebImage 加载图像,我使用以下代码

NSURL *imgURL = [NSURL fileURLWithPath:imagePath];
[cell.imgViewForCategory sd_setImageWithURL:imgURL placeholderImage:[UIImage imageNamed:@"testImage.jpg"] options:SDWebImageCacheMemoryOnly];

这里的imagePath 是我的图片的Document Directory 路径。

【问题讨论】:

  • 您是如何从文档中加载图像的?你的代码怎么样?
  • 请检查我更新的问题
  • 你的图片有多大?
  • 我的文档目录中存储了很多图像,可能有 500 个或更多,我正在从那里获取更多图像,每个图像的大小最大为 2 MB。
  • 你有没有用for循环来获取它们一次?

标签: ios objective-c iphone uicollectionview


【解决方案1】:

您最好使用 AutoReleasePool 以避免内存泄漏。

for (NSString *imageName in names) {
    @autoreleasepool {
        UIImage *image = [UIImage imageWithName:imageName];
    }
}

【讨论】:

  • 不,它不起作用,因为我在收藏视图中加载这些图像,同时滚动收藏它通过说“收到内存警告”而崩溃
  • ARC 已经处理自动释放,所以 @autoreleasepool 我想在这里没有任何影响,问题出在其他地方
  • @Tj3n 但是这个技巧可以根据apress.com/9781430241164避免内存峰值
猜你喜欢
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 2016-10-16
相关资源
最近更新 更多