在我的应用程序的初始化中,我正在从 Core Data 托管对象上下文中读取一些数据。出于某种原因,即使 executeFetchRequest 代码行只被调用一次,我在 Instruments Allocations 工具对象列表中看到了 5 个事件条目。例如,如果我从 Instruments 中深入研究源代码,我会看到:
我在这一行设置了一个断点,并验证了应用只在这一行停止了一次。但是,这是我在 Instruments 中看到的结果:
如果我查看这 5 个对象中的每一个的堆栈跟踪,它们都完全相同,都指向第 135 行,如第一个屏幕截图所示。 (如您所见,我尝试了几种不同的方案,结果都一样。)
所以我有两个问题。
问题 #1:为什么我看到 5 个活体?
问题 #2:为什么这些物体会以某种方式存在?据我所知,一切都被正确释放,并包装在应该处理这些对象的自动释放池中。
我正在使用带有 iOS SDK 5.0 的 Xcode 4.2。任何想法,将不胜感激。谢谢。
Best Answer-推荐答案 strong>
CFData 实例只是数据 block 。也许它们代表数据库中的记录,但不知道 CoreData 的内部结构,这只是猜测。它们可以表示 managedObjectContext 保存的缓存数据,但这也只是推测。
如果您没有看到任何泄漏报告,我不会太担心。
如果有人对此有更深入的了解,请加入。
关于iphone - 记录额外生命物体的仪器,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/9419782/
|