2016-04-03 79 views
0

我的iOS應用程序從第三方數據庫下載記錄,並使用CoreData在本地存儲它們。用戶可以編輯存儲的記錄的某些方面,例如可以添加用戶註釋以及來自數據庫的註釋。核心數據:以編程方式更改刪除規則

偶爾會更新數據庫,並提供刷新功能。而不是檢查條目的哪些部分是不同的,我只是蠻力刪除舊的,並用新的替換它。

但是,這也會刪除用戶註釋。我嘗試在刷新前保存它們,並在插入新條目後重新添加它們,但是一旦原始條目被刪除,由於「級聯」刪除規則,用戶註釋也會被刪除。如果我將刪除規則設置爲「無操作」,則所有筆記都不會被刪除。

所以我在想,是否可以在更新時臨時更改用戶備註的刪除規則,以便它不會被舊條目刪除?

或者也許我的方法是完全錯誤的,有更好的方法來處理這個問題?

更新:我已經在這裏創造一個跟進的問題:Change relationship of NSManagedObject to different context

+0

那麼爲什麼不更新或獲取要刪除的項目,只刪除它們? – Wain

+0

我仍在考慮正確的方法。我仍然不明白的是,當我將用戶筆記的關係從舊條目更改爲新條目,然後刪除舊條目時,用戶筆記也不見了。當我輸入此內容(遠離我的Mac)時,大聲思考,我可能需要在更改關係後保存上下文,然後刪除舊條目,然後再保存。 – Koen

回答

0

你不允許改變模型,可以被實例化後,除了版本。 我認爲,你應該創建一個新的實體,比如CustomNote,並在原始「記錄」中存儲一些唯一的標識符。然後通過id檢索這個筆記。 雖然這可能是一些更高級的關係方法,但這是最簡單的。

+0

是的,這似乎是要走的路。我已經找到了在這裏複製實體的方法:http://stackoverflow.com/questions/9344064/coredata-duplicate-existing-object – Koen

相關問題