【问题标题】:Xcode Instruments CoreGraphics LeakXcode Instruments CoreGraphics 泄漏
【发布时间】:2023-04-10 00:06:01
【问题描述】:

Xcode Instruments 说我有 CGColor Leak。

  • 责任图书馆:CoreGraphics
  • 责任框架:CGTypeCreateInstance

堆栈将其追溯到“Main”,下面的代码突出显示为错误。

int main(int argc, char *argv[]) 
{
    @autoreleasepool {
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([PDCAppDelegate class]));
    }     
}

有谁知道如何解决这个问题?谢谢大家!

【问题讨论】:

  • 主线程上的一切最终都会追溯到那里。问题是,栈顶和那里之间是什么?
  • 嗨,Ken,当我查看泄漏的详细汇总时,唯一以黑色突出显示的项目是“主要”。我的理解是灰色的项目超出了我的控制范围。这不正确吗?
  • 好吧,另一点是负责的框架就是它被分配的地方。您需要检查对象的历史记录,以查看代码的其他部分是否保留了它但未能释放它。
  • 好吧,我会更深入地研究它。显然是内存管理的新手。有一个没有 ARC 的应用程序。我应该先尝试将整个项目转换为 ARC,还是应该尝试手动跟踪这些内容?
  • ARC 很好,我推荐它,虽然它不是灵丹妙药。请记住,ARC 对像 Core Graphics 这样的非 Objective-C 内存管理没有帮助。就口味而言,对于这样的事情,我个人总是喜欢先解开谜团让我满意,然后再考虑换一种不同的做事方式。至少,这将是一次宝贵的学习经历。

标签: iphone ios objective-c xcode memory-leaks


【解决方案1】:

很可能,您的 PDCAppDelegate 或其拥有的东西正在创建 CGColorRef 并且未能释放它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2011-10-10
    • 2012-08-22
    • 2012-01-05
    • 2016-01-10
    • 2012-05-30
    • 2019-06-20
    相关资源
    最近更新 更多