【问题标题】:memory-leak happens when running on physical iOS device在物理 iOS 设备上运行时发生内存泄漏
【发布时间】:2012-06-13 13:01:42
【问题描述】:

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

【问题讨论】:

    标签: iphone ios ipad memory-leaks


    【解决方案1】:

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


    1. My App Crashed – Now What? 1/2
    2. My App Crashed – Now What? 2/2

    提示:你的问题可以用僵尸对象解决;但我建议您先按照教程进行操作。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        是的,模拟器和设备之间存在差异(有时是令人讨厌的大差异)。这是因为它们的底层硬件完全不同。很明显,模拟器模拟 iOS 硬件,但这并不意味着它是万无一失的。对于某些 API 和框架,事情可能只在硬件上工作,有时硬件上会出现在模拟器上没有出现的错误。只需将其视为 iOS 开发的“冒险”。

        至于资源,我会查看 @Arab_Geek 的链接,以及 Apple 的 Tools for iOS Development - 特别是 Instruments,例如 Leaks。

        【讨论】:

          猜你喜欢
          • 2011-09-07
          • 1970-01-01
          • 2011-08-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-01
          • 1970-01-01
          • 2016-03-24
          相关资源
          最近更新 更多