关于IOS内存泄漏
Posted
技术标签:
【中文标题】关于IOS内存泄漏【英文标题】:About memory leak in 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
循环来获取它们一次?
【参考方案1】:
您最好使用 AutoReleasePool 以避免内存泄漏。
for (NSString *imageName in names)
@autoreleasepool
UIImage *image = [UIImage imageWithName:imageName];
【讨论】:
不,它不起作用,因为我在收藏视图中加载这些图像,同时滚动收藏它通过说“收到内存警告”而崩溃 ARC 已经处理自动释放,所以@autoreleasepool
我想在这里没有任何影响,问题出在其他地方
@Tj3n 但是这个技巧可以根据apress.com/9781430241164避免内存峰值以上是关于关于IOS内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章
关于iOS8上使用UITextView内存泄漏的一个坑:-[UITextView textInputView]: message sent to deallocated instance