仪器在模拟器上发现泄漏,但在设备上没有
Posted
技术标签:
【中文标题】仪器在模拟器上发现泄漏,但在设备上没有【英文标题】:Instrument finds leaks on Simulator, but not on the Device 【发布时间】:2009-11-24 16:22:49 【问题描述】:我在提交到 AppStore 之前正在调整我的 iPhone 应用程序,当我注意到如果我在模拟器中运行 Instrument|debug 会发现很多内存泄漏...但如果我在设备上运行它 Instrument 找不到任何一个.... 老实说,有两个漏洞,我已经修复了它们。现在设备上没有泄漏,但模拟器上仍然有太多泄漏。
谁是对的?
【问题讨论】:
在模拟器上发现的泄漏,它们有效吗?你已经改正了吗? 它们无效。例如,我通过代码创建了一些带有自定义标签的自定义按钮。 Instrument 在 UIButton 和 UILabel 上都发现了泄漏,但没有泄漏:我只是 alloc\init,添加到 Subview,然后释放它们!我还尝试创建泄漏,仪器发现它在设备上正确运行(这意味着仪器正常工作)。天哪! 【参考方案1】:信任设备。
模拟器将使用稍微不同的内存模型 - 始终在设备上进行测试 :)
山姆
【讨论】:
谢谢。你说我想要别人对我说的话 :D 啊,我会相信设备,模拟器已经疯了!停止调试,让我们提交:)【参考方案2】:您是否为您的模拟器构建设置了 NSZombieEnabled?这将导致报告大量泄漏。
【讨论】:
以上是关于仪器在模拟器上发现泄漏,但在设备上没有的主要内容,如果未能解决你的问题,请参考以下文章