我有3个UIImages的内存泄漏问题是我不能在我的代码中的任何地方释放它们因为它们在任何时候都被用于许多不同的地方而且我不知道它在哪里(超过20,000)代码行)所以我的问题是,如果每10秒钟我拿一个UIImages,创建一个空白占位符UIImage,将空白UIImage的图像设置为原始UIImage的图像。释放原始的UIImage,现在将原始UIImage的图像设置为等于占位符UIImage,然后释放占位符UIImage,这会有效吗?如果我设置一个UIImage一千次,然后在最后释放它是否清除所有数据或者我必须释放它一千次?
答案 0 :(得分:0)
我真的不明白你想做什么但是你只有一个解决方案:修复内存泄漏。其他一切都可能只是让你的问题一直存在,直到一切都崩溃。
由于您似乎有泄漏,因此您可能无法严格遵守Apple memory management guidelines。阅读,理解并遵守本文档至关重要,它可能是您需要了解的有关iOS开发的最重要文档。如果你这样做,你甚至可以保持巨大的项目绝对无内存泄漏。如果你不这样做,你最终会发生泄密和崩溃。
幸运的是,Apple已经可以帮助您找到很多问题:按"分析"在Xcode中并修复静态分析器找到的所有问题。除少数例外情况外,分析仪报告的问题是真正的问题,需要修复。编译器警告也是如此,BTW。无论您的应用程序有多大,您的项目都不会产生任何警告,也不会产生单一的静态分析器问题(我可以通过第一手工作经验来处理具有多个人年工作的应用程序这不仅是可能的,而且是保持理智的唯一方法。
如果静态分析仪没有发现内存管理不善,您需要咬住子弹并分析手动使用图像的所有位置,并重写几个类。每一种解决方法都会将您需要做的工作转移到以后的时间,甚至可能使事情变得更糟。