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