在我的应用程序的初始化中,我正在从Core Data托管对象上下文中读取一些数据。出于某种原因,即使executeFetchRequest代码行只被调用一次,我在Instruments Allocations工具对象列表中看到了5个生存条目。例如,如果我深入了解Instruments中的源代码,我会看到:
我在这一行设置了一个断点,并验证该应用程序仅在此行停止一次。但是,这就是我在仪器中看到的结果:
如果我查看这5个对象中每个对象的堆栈跟踪,它们完全相同,都指向第135行,如第一个屏幕截图所示。 (如您所见,我尝试过几种不同的场景,并且所有场景都有相同的结果。)
所以我在这里有两个问题。
问题#1:为什么我会看到5个生物?
问题#2:为什么物体会以任何方式存在?据我所知,一切都正确发布,并包含在应该处理这些对象的自动释放池中。
我使用的是iOS SDK 5.0的Xcode 4.2。任何想法,将不胜感激。感谢。
答案 0 :(得分:2)
CFData实例只是数据块。也许他们代表数据库中的记录,但不知道CoreData的内部,这只是猜测。它们可以表示由managedObjectContext持有的缓存数据,但这也仅仅是推测。
如果您没有看到任何泄漏报告,我不会太担心它。
虽然如果有人对此有更深入的了解,请加入。