2013-03-07 24 views
1

在調試的時候,如果我有一個NSManagedObjectContext,有沒有辦法查看裏面的內容來查看其中的對象。調試NSManagedObjectContext

基本上我有一個保存錯誤,因爲有一個CGColor被保存不符合NSCoding。但我不知道這個CGColor從哪裏來。

回答

2

好吧,退後一秒,思考你的錯誤源於哪裏。

您試圖通過NSCoding機制對CGColorRef進行編碼。這顯然不被支持,並會導致異常被拋出。您應該在調試器中添加一個異常斷點來反省執行錯誤分配的位置。你應該能夠弄清楚你的問題。

如果您發現這與您的問題無關,那麼您確實可以通過-registeredObjects方法反思在您的上下文中放置的對象。

2

我同意JR(以下),你應該設置一個異常斷點,以在故障點獲取堆棧跟蹤。

另外一個想法:雖然自動保存很方便,但它並不總是在調試的最佳時間發生。您可能會發現它把有幫助的,迫使一個明確的調試操作保存時要驗證你的對象:

[self.document closeWithCompletionHandler:^(BOOL success) { 
    if (!success) NSLog(@「failed to close document %@」, self.document.localizedName); 
    }]; 

有了這個,或者類似的東西,你可以開始在不同的點保存時看到您對象變得損壞。請記住,保存是異步的。

+0

在某些特定情況下(例如iCloud),保存僅爲異步。 Vanilla' - [NSManagedObjectContext save:]'然而*是*同步的。 – 2013-03-08 00:31:08