gpt4 book ai didi

iPhone - 应用程序被弹出

转载 作者:行者123 更新时间:2023-12-03 20:11:32 26 4
gpt4 key购买 nike

我有一个应用程序因“内存不足”而被 iPhone 操作系统弹出。

我已通过仪器将其传递,发现零泄漏,内存使用量约为 640 kb。

当我向屏幕添加对象时,应用程序崩溃。

这就是它的工作原理。我有一个基于 UIImageView 的类,它非常简单,并向对象添加了一些属性。该类用于创建的对象。

当用户点击按钮时,会创建该类的新图像并将其添加到 self.view。

添加大约 15 个对象后,应用程序将被弹出,并出现内存不足警告。

仪器报告没有显着的内存使用情况。即使添加了 15 个对象,ALL ALLOCATIONS 条目也不会超过 660 kb。每个对象可以是 5 个 120x120 像素图像中的一个。

如果不是对象分配或泄漏,那会是什么?请告诉我应该按照什么方向来定位问题。

感谢您的帮助。

最佳答案

ObjectAlloc 工具并不指示应用程序中的所有内存使用情况。 View 和其他可视元素不会在 ObjectAlloc 中显示其完整大小,因此您需要使用内存监视器工具来查看应用程序在任何给定时间的实际内存大小。

此外,仅仅因为 Instruments 没有报告泄漏并不意味着它们不存在。通过 Clang Static Analyzer 运行您的应用程序,以再次查找潜在的内存泄漏(通过 Xcode 3.2 下的 Build | Build and Analysis 或 downloading the standalone tool )。再说一遍,即使这个过程过去了,您仍然会看到内存消耗不断增加,说明某处存在泄漏。

您在评论中提到使用 Quartz 绘图。您需要记住,Quartz 中使用的 Core Foundation 对象也遵循特定的内存管理模型,其中您使用名称中包含 Create 的函数创建的所有内容都必须使用诸如 CFRelease 之类的匹配函数来释放()。如果您忘记了这一点,这可能不会显示为泄漏,但事实确实如此。

关于iPhone - 应用程序被弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2313621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com