记录额外生物的仪器

时间:2012-02-23 19:23:20

标签: iphone ios memory-management instruments nsmanagedobjectcontext

在我的应用程序的初始化中,我正在从Core Data托管对象上下文中读取一些数据。出于某种原因,即使executeFetchRequest代码行只被调用一次,我在Instruments Allocations工具对象列表中看到了5个生存条目。例如,如果我深入了解Instruments中的源代码,我会看到:

enter image description here

我在这一行设置了一个断点,并验证该应用程序仅在此行停止一次。但是,这就是我在仪器中看到的结果:

enter image description here

如果我查看这5个对象中每个对象的堆栈跟踪,它们完全相同,都指向第135行,如第一个屏幕截图所示。 (如您所见,我尝试过几种不同的场景,并且所有场景都有相同的结果。)

所以我在这里有两个问题。

问题#1:为什么我会看到5个生物?

问题#2:为什么物体会以任何方式存在?据我所知,一切都正确发布,并包含在应该处理这些对象的自动释放池中。

我使用的是iOS SDK 5.0的Xcode 4.2。任何想法,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:2)

CFData实例只是数据块。也许他们代表数据库中的记录,但不知道CoreData的内部,这只是猜测。它们可以表示由managedObjectContext持有的缓存数据,但这也仅仅是推测。

如果您没有看到任何泄漏报告,我不会太担心它。

虽然如果有人对此有更深入的了解,请加入。