【发布时间】:2011-01-14 17:36:10
【问题描述】:
iPhone 上的另一个内存问题 - 运行泄漏应用程序时,我看到许多泄漏被识别出来,但它们是由 NSFoundation 或类似情况引起的,而不是由我的应用程序代码引起的。在提到我的应用程序名称的地方,我显然已经解决了泄漏问题。
我假设我可以忽略这些并且我的应用将获得批准,还是我读取数据不正确?
另外 - 应用程序在获得批准之前是否必须有零内存泄漏?
干杯
【问题讨论】:
标签: iphone memory-leaks
iPhone 上的另一个内存问题 - 运行泄漏应用程序时,我看到许多泄漏被识别出来,但它们是由 NSFoundation 或类似情况引起的,而不是由我的应用程序代码引起的。在提到我的应用程序名称的地方,我显然已经解决了泄漏问题。
我假设我可以忽略这些并且我的应用将获得批准,还是我读取数据不正确?
另外 - 应用程序在获得批准之前是否必须有零内存泄漏?
干杯
【问题讨论】:
标签: iphone memory-leaks
Apple 在测试自己的东西时发现的任何泄漏都会得到修复(Apple 肯定会测试泄漏)。框架并非完全无泄漏,但假设问题出在框架中是很危险的。这里有几件事要记住:
(1) 如果你泄漏了一个对象,挂在它上面的整个对象树也将被报告为泄漏。假设您从未听说过的 NSPrivateWhosit 类的对象被泄露。这是否一定是苹果的问题?不,它可能是您泄露的 NSPublicClass 实例使用的东西。
(2) 如果一个对象在 Foundation 中分配并传递给您,并且您保留它,那么您可以泄漏它。分配的回溯无关紧要。重要的是不平衡保留的回溯。
【讨论】:
内存泄漏不会导致您的申请被拒绝,除非它们会导致总体不稳定 - 例如在视图之间向前/向后移动时发生泄漏最终会导致您的应用程序崩溃。
也就是说,SDK 库中的实际泄漏很少,因此请务必检查泄漏实际上不是您的代码正在执行的操作的结果。
【讨论】:
即使存在内存泄漏,您的应用程序也会获得批准(至少我的错误应用程序确实获得了批准)。
【讨论】: