什么是我的仪器泄漏块历史表中的“QuartzCore ... CA :: Transaction :: observer_callback ..”?

时间:2011-06-03 02:00:21

标签: iphone xcode memory-leaks xcode4 instruments

我的“仪器泄漏块历史记录”表中的“QuartzCore ... CA :: Transaction :: observer_callback ..”是什么?

请注意,我在分析时使用模拟器创建了一些硬件内存警告。

QuartzCore  CA::Transaction::observer_callback(__CFRunLoopObserver", unsigned long, void")
from main:14 => "int retVal = UIApplicationMain(argc, argv, nil, nil);"

下图:

enter image description here

1 个答案:

答案 0 :(得分:1)

该功能来自Core Animation。

通常当主循环完成一个完整的泵并最终使用Core Animation绘制到屏幕时,顶级NSAutoreleasePool将在此时刷新。

我不会详细说明它应该发生的具体细节,但是在UIApplicationMain函数中,为整个主线程范围创建了一个嵌套的NSAutoreleaesPool。人们普遍认为,当泵完成时,它应该冲洗(尽管它可能会在稍后发布,但这是Apple的实施细节)。

您在该功能的所有发布中看到的是您之前排队的所有自动释放呼叫的所有实际版本。