所以,這就是我面臨的問題。我有一個由NSFetchedResultsController支持的UITableView。現在在應用程序啓動時,我更新數據源,這涉及到進行多個網絡調用並處理傳入數據。如果用戶在更新數據源時刪除其中一行,則訪問異步網絡回調中的已刪除數據會導致應用程序崩潰。我如何優雅地處理這種情況?防止在刪除後訪問CoreData對象訪問
1
A
回答
0
嘗試在訪問對象之前先調用isDeleted
。
0
如果您正在使用NSFetchedResultsController的內存跟蹤,那麼在將記錄從持久存儲區中刪除之前,您將能夠從界面中刪除記錄。確保閱讀NSFetchedResultsController的委託的NSFetchedResultsChangeType,並確保將NSManagedObjectContext從後臺線程(刪除對象的位置)與NSManagedObjectContext讀取記錄合併。
確定對象是否已被刪除的一個好方法是使用existingObjectWithID:error:檢查包含當前對象ID的現有對象。當使用沒有NSFetchedResultsController的NSManagedObjects時,這非常有用。
相關問題
- 1. 訪問關係對象(CoreData)
- 2. 防止訪問表中最後一條記錄被刪除
- 3. 爲了防止在cakephp註銷後訪問訪問頁面?
- 4. CoreData:通過關係訪問對象
- 5. 訪問$ http.get後的對象
- 6. 防止TensorFlow訪問GPU?
- 7. 防止圖書館訪問
- 8. 防止外部訪問,mongodb
- 9. 防止目錄訪問
- 10. 防止直接訪問PHP
- 11. 防止訪問jar資源
- 12. 訪問在對象
- 13. CoreData屬性訪問問題
- 14. 刪除對象Coredata
- 15. 訪問CoreData關係
- 16. 訪問對象
- 17. 訪問對象
- 18. 訪問對象/
- 19. 訪問對象#
- 20. 訪問對象
- 21. 在php解析後訪問xml對象
- 22. Django:在保存後訪問ManyToManyField對象
- 23. 如何防止Type.GetProperties()訪問對象中的屬性
- 24. 防止其他對象訪問C數組
- 25. 防止Jenkins在端口8080上訪問
- 26. 防止在Python中訪問「private」屬性
- 27. 後訪問本地變量「刪除」
- 28. 問題訪問JSON對象?
- 29. PHP對象訪問問題
- 30. 訪問類對象問題
刪除將在主線程上發生,而更新將在後臺線程上發生。即使我在後臺線程中檢查了existingObjectWithID:error:它可能發生在檢查之後被刪除的對象。我該如何處理?基本上,我如何解決刪除更新衝突,有利於刪除? –
與核心數據問題相比,您有更多的體系結構問題。這是使用多線程的一個棘手部分。在覈心數據的情況下,你需要確保你的上下文是同步的。在主線程上被刪除對象的地方需要監視被操縱的對象/實體的變化。與後臺線程更新對象相同的東西。這樣,如果在主線程中刪除該對象,則該對象將不被允許更新。但首先,仔細看看你的設計。您可能需要一個串行隊列來處理這些類型的操作。 – J2theC