关于C#:使用Push Segues时iOS相册内存泄漏/崩溃

iOS Photo Gallery Memory Leak / Crash when using Push Segues

我创建了一个小型照相馆,它会在新的视图控制器中显示较大的照片版本,并在单击时显示一些其他文字:

enter image description here

问题是-经过少量图像处理后,应用程序由于内存过度使用而崩溃。 我尝试通过压缩图像来解决此问题,以保留较小的内存占用空间,但是问题仍然存在,并且不确定如何解决此问题。

enter image description here

另外-几乎没有代码可以执行此操作,因为我正在使用情节提要的推送功能以及内置的导航项在viewControllers之间返回。

enter image description here

附言

如果您认为有必要提供源代码以了解这种情况,请在此处找到:

https://www.dropbox.com/s/q1qq8pq4tzv8wyo/EXAMPLE%20BUILD.zip?dl=0


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

将大小调整为600x400可以达到目的。


要解决此问题,您必须使用此技巧。 将" placeHolder"图像放入" StoryBoard"中单元格的图像视图中。 不要一次在" ViewController"中全部加载图像,不要通过运行循环或在" cellForRowAtIndexPath()"方法中一次加载图像,并在每次迭代中添加延迟(首先加载图像,然后添加延迟,然后加载 第二张图片并添加延迟,然后添加第三张图片,依此类推直到最后一张图片)。

如果您想知道如何添加延迟,请查看以下链接:

NSTimer-如何在Swift中延迟