我正在構建一個應用程序,該應用程序從Web API接收許多列表,並允許用戶保存一些用於離線查看。我通常的做法是:我可以在沒有特定的NSManagedObjectContext中創建NSManagedObject的實例嗎?
- 從API獲取數據,並作出新的上市對象的每個數據
- 對象保存到數據庫如果用戶選擇這樣做。
但是這是一個核心數據應用程序,所以上下文是保存的內容,而不是對象。在這些情況下,上面會變成這樣的事情:
- 從API獲取數據,並進行非託管上市對象的每個數據
- 移動物體進入管理方面,如果用戶選擇做所以,然後保存上下文
有一個非託管和託管版本的對象的方法是有兩個類,例如託管上市和非託管上市 - 但這是一個可怕的重複性的做法。
我想要做的是列出NSManagedObject的子類;初始化一堆沒有NSManagedObjectContext的;那麼當我想保存一個時,我要麼設置其上下文,要麼將其屬性複製到上下文中的新列表。
我可以在沒有特定的NSManagedObjectContext中創建NSManagedObject的實例嗎?如果是這樣,怎麼樣?
爲什麼不把它們全部放在上下文中,然後在不需要時刪除它們。或者,您可以將它們全部分離,然後通過將每個對象的信息傳遞給ManagedObject obj來保存它們。 –
如果create-and-delete是臨時對象的模式,是否有方法來取消刪除它們?我不喜歡兩級解決方案,因爲它會增加保持它們之間關係的工作。 – Simon
你有'[context deleteObject:]'和'[context insertObject:]'這會讓你在你的對象是否被「插入」到被管理的對象上下文中做出改變。當你想保存當前佈局時,只需調用'[context save:]' –