在物理iOS设备上运行时会发生内存泄漏

时间:2012-06-10 04:07:15

标签: iphone ios ipad memory-leaks

在测试我的应用程序时,iOS模拟器上的一切运行正常,但在物理iOS设备上运行相同的应用程序时遇到内存泄漏。我是开发iOS应用程序的新手,我知道这有很多潜在的原因。我想知道为什么模拟器和物理设备之间存在差异,以及是否有办法解决我的内存泄漏问题?

3 个答案:

答案 0 :(得分:3)

我建议你阅读下面的教程。它将帮助您了解如何调试内存问题和其他问题。


  1. My App Crashed – Now What? 1/2
  2. My App Crashed – Now What? 2/2
  3. 提示:您的问题可以通过僵尸对象解决;但我建议你先按照教程。

答案 1 :(得分:1)

我很惊讶您的设备有泄漏,而不是在模拟器中。你是怎么得出结论的?两者都可能泄漏,但问题只是在不同的平台上表现得不同,或者只是在设备上比模拟器更快地遇到问题。

如果你有泄漏,我建议两件事:

  1. 通过静态分析器运行代码(从Xcode的“Product”菜单中选择“Analyze”)。较新的开发人员倾向于忽略这个非常有用的工具。我知道,只有在完成分析器结果并真正了解(并解决)我所拥有的一个非常大的项目中的每一个问题之后,我才终于掌握了我的Objective C内存管理技术。无论如何,如果你在那里收到任何警告,你真的应该修复它们,因为它们通常是内存管理问题的迹象。

  2. 通过探查器运行程序。请参阅Finding Leaks文档。

答案 2 :(得分:0)

是的,模拟器和设备之间存在差异(有时令人讨厌的大一点)。这是因为每个底层硬件都完全不同。显然,模拟器是模拟 iOS硬件,但这并不是万无一失。对于某些API和框架,事情可能只在硬件上工作,有时在模拟器上没有出现的硬件上会出现错误。把它想象成iOS开发的“冒险”。

至于资源,我会看看@ Arab_Geek的链接,以及Apple的Tools for iOS Development - 特别是Instruments,就像Leaks一样。