2012-06-10 67 views
0

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

回答

0

是的,模拟器和设备之间存在差异(有时是一个令人讨厌的大问题)。这是因为每个硬件的底层硬件是完全不同的。显然模拟器是模拟的iOS硬件,但这并不能让它十分安全。对于某些API和框架,事物可能只能在硬件上工作,有时候硬件上会出现错误,这些错误在模拟器上不会发生。只要把它看作是iOS开发的“冒险”。

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

1

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

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

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

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