使用推送序列时,iOS照片库内存泄漏/崩溃

使用推送序列时,iOS照片库内存泄漏/崩溃,ios,objective-c,memory-leaks,Ios,Objective C,Memory Leaks,我已经创建了一个小照片库,它在单击时会显示一个新的视图控制器,其中包含一个更大版本的照片和一些附加文本: 问题是,在浏览了一些图像之后,应用程序由于过度使用内存而崩溃。我试图通过压缩图像来解决这个问题,以便留下更小的内存占用,但问题仍然存在,我不确定我还能做些什么来解决这个问题 此外,几乎没有代码可以执行此操作,因为我使用故事板的推送序列以及内置导航项在ViewController之间返回 附言 如果您觉得需要源代码来提供此实例中的细节,可以在以下位置找到: 要解决这个问题,你必须使用这个

我已经创建了一个小照片库,它在单击时会显示一个新的视图控制器,其中包含一个更大版本的照片和一些附加文本:

问题是,在浏览了一些图像之后,应用程序由于过度使用内存而崩溃。我试图通过压缩图像来解决这个问题,以便留下更小的内存占用,但问题仍然存在,我不确定我还能做些什么来解决这个问题

此外,几乎没有代码可以执行此操作,因为我使用故事板的推送序列以及内置导航项在ViewController之间返回

附言

如果您觉得需要源代码来提供此实例中的细节,可以在以下位置找到:


要解决这个问题,你必须使用这个技巧;在“故事板”中的单元格图像视图中放置一个“占位符”图像。不要在“ViewController”中一次加载所有图像,通过运行循环或在“cellForRowAtIndexPath()”方法中逐个加载它们,并在每次迭代中添加延迟(加载第一个图像,然后添加延迟,加载第二个图像,然后添加延迟,然后加载第三个图像,直到最后一个图像)

如果您想知道如何添加延迟,请检查此链接:


为了解决这个问题,我只是简单地调整了图像的大小-我注意到我不小心使用了一个巨大的(6000 x 4000)图像,即使我压缩了图像,iOS也不得不非常艰难地将其调整到视图中。。。从而导致内存泄漏和随后的崩溃


将它们的大小调整到600x400就成功了

即使崩溃不是在加载所有缩略图时发生的,而是在加载所有缩略图后发生的,然后加载非缩略图视图并在两个视图之间来回移动3或4次?可能您的图像正在一次又一次地加载,或者问题是您每次在序列中都在一次又一次地传递大型图像视图对象。如果您正在传递imageview对象,那么我建议您传递图像的路径/url,并在“SecondViewController”中从该路径/url加载图像。我只是使用Storyboard为每个对象添加了图像,然后单击“是”-来回切换时,图像会被加载多次-也就是当崩溃发生时,请确保您没有在“ViewWillAspect()”或“ViewDidAspect()”方法中调用“yourCollectionView.reloadData()”方法。如果是这种情况,请将其拆下。