我在我的應用程序中有以下流程:
我的第一個屏幕是UITableView
支持NSFetchedResultController
和後臺線程,刷新我的列表。 的NSManagedObject
我的表格單元格被稱爲DataItem
當我在一個單元格單擊我推另一viewcontroller
顯示更多詳細的DataItem
但如果後臺線程刷新列表,而我推detailsviewcontroller
,並在此更新過程中,我需要刪除DataItem
反對它會使得物體在我detailsviewcontroller
所以是無效的,當我嘗試在DataItem
訪問屬性將提高NSObjectInaccessibleException
:「核心的數據未能履行的過錯......」CoreData NSObjectInaccessibleException
什麼是最好的辦法對於這種情況?而不是將DataItem
對象傳遞給detailsviewcontroller
我應該只傳遞DataItem
的必要屬性,還是對這種情況有解決方法?
謝謝
我不認爲這個解決方案對我有太大的幫助,因爲我需要保護自己免受對象刪除的影響。我仍然需要刪除這些對象以保持我的列表的準確性,但是我無法讓用戶等待我確保列表的準確性。 –
我現在發現的解決方案是將必要的值從DataItem傳遞給我的DetailsViewController,而不是NSManagedObjectModel,以後可能會失效。 –
@Mihai - 但是如果你的對象被後臺更新刪除,難道你不想告訴用戶,而不是向他們展示不再存在的「DataItem」?這是你的選擇,但是根據我的建議,fetch返回一個'nil'而不是拋出一個異常,所以你受到保護......你所需要做的就是讓你的'DetailViewController'顯示一個用戶友好的信息,例如。 「數據項不可用」,只要'nil'由提取返回... – octy