【问题标题】:Leaks not caused by application code - Will it get approved?不是由应用程序代码引起的泄漏——它会被批准吗?
【发布时间】:2011-01-14 17:36:10
【问题描述】:

iPhone 上的另一个内存问题 - 运行泄漏应用程序时,我看到许多泄漏被识别出来,但它们是由 NSFoundation 或类似情况引起的,而不是由我的应用程序代码引起的。在提到我的应用程序名称的地方,我显然已经解决了泄漏问题。

我假设我可以忽略这些并且我的应用将获得批准,还是我读取数据不正确?

另外 - 应用程序在获得批准之前是否必须有零内存泄漏?

干杯

【问题讨论】:

    标签: iphone memory-leaks


    【解决方案1】:

    Apple 在测试自己的东西时发现的任何泄漏都会得到修复(Apple 肯定会测试泄漏)。框架并非完全无泄漏,但假设问题出在框架中是很危险的。这里有几件事要记住:

    (1) 如果你泄漏了一个对象,挂在它上面的整个对象树也将被报告为泄漏。假设您从未听说过的 NSPrivateWhosit 类的对象被泄露。这是否一定是苹果的问题?不,它可能是您泄露的 NSPublicClass 实例使用的东西。

    (2) 如果一个对象在 Foundation 中分配并传递给您,并且您保留它,那么您可以泄漏它。分配的回溯无关紧要。重要的是不平衡保留的回溯。

    【讨论】:

      【解决方案2】:

      内存泄漏不会导致您的申请被拒绝,除非它们会导致总体不稳定 - 例如在视图之间向前/向后移动时发生泄漏最终会导致您的应用程序崩溃。

      也就是说,SDK 库中的实际泄漏很少,因此请务必检查泄漏实际上不是您的代码正在执行的操作的结果。

      【讨论】:

      • 我同意,NSFoundation 泄漏的可能性很小。
      【解决方案3】:

      即使存在内存泄漏,您的应用程序也会获得批准(至少我的错误应用程序确实获得了批准)。

      【讨论】:

      • 是的,泄漏或不明显的崩溃不会阻止应用程序获得批准。否则很多应用都不会上架。
      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 2011-03-29
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2010-11-08
      相关资源
      最近更新 更多