2014-03-14 36 views
0

我正在使用AFNetworking從服務器獲取JSON對象。然後我使用ObjectiveRecord來創建數據對象(Core Data)。有時我會搜索並更新對象。這在模擬器上以及我的iPhone 5上都能很好地工作。但是,當使用iPhone 5S時,它不起作用。當執行insertNewObjectForEntityForName(在ObjectiveRecord代碼中)時,我得到一個EXC_BAD_ACCESSAFNetworking不正確通過ObjectivRecord(核心數據)創建/更新

閱讀了大量關於核心數據和線程的文章,這使我相信我應該使用私有上下文,使用NSPrivateQueueConcurrencyType

我用建議的方式來設置這ObjectiveRecord,那就是:

NSManagedObjectContext *newContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; 
newContext.persistentStoreCoordinator = [[CoreDataManager instance] persistentStoreCoordinator]; 

然後我用createInContext:在AFNetworking完成塊創建我的對象。

我發現在SO過類似的問題,但它不使用ObjectiveRecord:Get a number of resources asynchronously and "asynchronously" save them to a database. Which good pattern to use? (AFNetworking, Core Data)

不過,我不明白這一點的工作。我究竟做錯了什麼?還是我在錯誤的軌道上?

+0

你可以嘗試啓用'NSZombie'可能趕上墜機原因,當然它沒有涉及到'AFNetworking'是與CoreData實施。相同的代碼在其他設備上工作正常嗎? – iphonic

+0

要啓用'NSZombie',去'MenuBar' - >'Product' - >'Scheme' - >'編輯Scheme',然後單擊'Diagnostics'選項卡上。啓用「啓用殭屍對象」複選框。你會看到像' - [UITableView的發行]:在您的日誌發送到重新分配的instance'而不是拋出異常的消息。它應該幫助你找出哪個對象已被釋放。 – ertemplin

+0

這個問題只出現在iPhone 5S。見問題;-) 我將嘗試使用NSZombie,看看我是否能得到一些更多的提示。 –

回答

0

我沒有得到這個工作。可能是因爲我在覈心數據方面的技能還不夠。所以我轉而使用MagicalRecord。瞭解如何在多線程環境中使用它比使用ObjectiveRecord更容易。遺憾的是,在多線程環境下沒有關於如何使用ObjectiveRecord的好文章。