2

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

enter image description here

我设置在这一行断点,并验证应用程序被停止在这条线一次。然而,这是我所看到的在仪器的结果:

enter image description here

如果我看的这些5个对象的堆栈跟踪,它是完全一样的,都指向回线135如图所示在第一个屏幕截图中。 (正如你所看到的,我已经尝试了几种不同的场景,并且他们都有相同的结果。)

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

问题1:为什么我看到5个活物?

问题2:为什么物体以任何方式生活?从我可以告诉,一切都正确释放,并包裹在autorelease池应该照顾这些对象。

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

回答

2

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

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

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

+0

认为你走在正确的轨道上。 – timthetoolman 2012-02-23 19:48:49