ios - CG 光栅数据 - CGProviderCreateWithCopyOfData - 无法发布?

标签 ios objective-c automatic-ref-counting quartz-2d core-text

我正在尝试查找内存泄漏的来源,详见此处:

Unable to Release Quartz 2D and Core Text created Images

当我使用仪器时,我可以看到有一种叫做 CG Raster Data 的东西在不断增长,但从未发布过。

有谁知道这可能是什么原因造成的以及如何补救?看起来这可能是某种图像缓存,但是否可以从代码中清除它?

最佳答案

我遇到了同样的问题,即通过简单地反复推送和弹出 View Controller 来增加 CG 光栅数据内存。我花了一段时间认为这是一些绘图代码的问题。我最终追踪到一个委托(delegate)没有弱引用被推送和弹出的 View Controller ,所以当我弹出 View Controller 时,它没有被释放。 CG 光栅数据恰好是该 View Controller 足迹的最大部分,所以我最初错误地将问题归因于此,当时实际上是 View Controller 本身没有被释放(因此,没有释放它的 View ,一些其中有 CG 光栅数据)。

简而言之:如果您发现 CG 栅格数据存在内存泄漏,请查看可能与它们有 View 的 View Controller ,并确保它们已被释放。

关于ios - CG 光栅数据 - CGProviderCreateWithCopyOfData - 无法发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516858/

相关文章:

iphone - 无法在 xcode4.2 中禁用 ARC

ios - ARC 和非 ARC 框架之间的内存管理

ios - __bridge 在没有电弧的情况下崩溃但必须在没有电弧的情况下使用

ios - 如何以编程方式获取应用组名称?

ios - 模态转换 - 其中一个 View 似乎正在被释放

iOS:在文档应用程序中下载并保存 PDF 文件

ios - 手势识别器阻止触摸已结束

ios - 如何在 objective-c 中访问touchEnded中的数组元素

ios - 如何完全覆盖导航栏的后退按钮操作?

iphone - 为什么我不能在我的 NSManagedObject 子类中覆盖 isEqual?