iphone - 内存泄漏仅出现在 iPhone 上

标签 iphone ios xcode memory-leaks

我有一个带有 4 个标签的标签栏应用程序,代码中没有什么特别的。

所有模拟器测试都很好,应用程序没有崩溃,一切正常,Xcode 中没有显示警告或错误(我使用的是 Xcode 4.2,应用程序使用 Storyboard)。

运行“分析”时,代码中没有泄漏、错误或潜在泄漏。

运行“leaks”时,没有列出任何泄漏,我可以加载、重新加载、在选项卡之间切换等,一切都很好。

但是,当我在 iPhone 上运行它时,出现了很多泄漏!

它们中的一些似乎在所有已发布且看起来不错的代码中,并且在 Xcode 中都可以正常验证。

为什么这与在手机上运行的模拟器不同,我如何找到和调试在模拟器上运行泄漏时未显示的泄漏?

最佳答案

首先,通过将检查范围(使用左右范围按钮)限制在发生泄漏的区域,您可以检查更小的区域。然后,通过从左侧的调用树中选择一些有用的检查,例如仅显示 Obj-C、隐藏丢失的符号等。然后您将从仪器中获得更多有用的信息。之后,单击与泄漏相关的行之一,打开扩展 View 并开始检查调用堆栈。另外,据我所知,双击泄漏行可以将您带到分配泄漏对象的源代码。这里要小心,因为它没有显示泄漏发生的位置,它显示了泄漏对象的分配位置。因此,您应该关注这些对象发生了什么。

关于模拟器和设备的区别,可以查看this所以问题。

希望这些帮助!

关于iphone - 内存泄漏仅出现在 iPhone 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467522/

相关文章:

iphone - MKMapView - 如何在没有可用坐标时显示 "No Data"

ios - 松弛登录不起作用。 swift 3.0

ios - SpriteKit zPosition 背景

ios - Xcode 在 Assets 目录打开时卡住

iphone - 从单个方法实例化一定数量的唯一对象

iphone - 远程写入 .plist 文件 iPhone SDK

ios - Admob 广告卡住了我的 iOS 游戏 (SpriteKit)

iphone - 页脚宽度设置为 100%,绝对位置不会延伸到移动浏览器中浏览器窗口的右边缘

ios - 你能从 iphone 应用程序下载 PDF 格式的东西吗

swift - tvOS:如何禁用 UIKeyBoard 上的下一步和完成按钮?