2011-07-19 71 views
0

我正在學習Core Data,並瞭解創建全新對象,分配值並將其保存到managedContext(insertNewObjectForEntityForName)的所有示例。 但是,如果我已經在別處創建了一個對象(模型類別),該怎麼辦?在這種情況下,我想只將當前的上下文分配給這個模型,然後保存它。將現有模型保存到CoreData數據庫

什麼是採取內存模型的命令/方法,然後分配給上下文,以便可以保存?

回答

1

如果你想使用核心數據來管理你的數據,你將需要:

  • 創建一個適當的模型描述(.xcdatamodeld文件)

  • 修改模型類(ES ),以便它們從NSManagedObject繼承

  • 設置「類別」爲每個實體模型中描述的NSManagedObject的一個子類

  • 代碼添加到您的應用程序來創建和管理核心數據堆棧,獲取數據等

這是非常做,能,但我不會建議你嘗試它,直到你有一個對核心數據的理解以及在項目中採用它的理由。你的問題缺乏清晰度可能表明你還沒有到達那裏;您可能從一開始就使用核心數據的小型項目中受益。

如果您只想保存數據,您應該知道Core Data不是唯一的方法。保存數據的簡單方法是在數據模型中採用NSCoding協議,然後使用NSKeyedArchiver存儲數據。從Archives and Serializations Programming Guide獲取完整的故事。還有其他方法可以做到,但NSKeyedArchiver是一個很好的開始。

+0

感謝您的回覆,我已經完成了您提到的步驟。我沒有做的是「創建」一個空白的實例 - 而是我分配一個新的模型實例(像一個普通的類),但我沒有一個上下文存儲。我正在尋找一個將上下文附加到當前實例的命令,但是我已經瞭解到,CoreData的* right *方法是獲取/創建一個空白實體並對其進行修改。 – beeudoublez

0

您只能將NSManagedObject(及其子類)保存到CoreData。 NSManagesObject上下文NSManagedObjectContext之外無法創建。

所以,你說的是混亂。你有一個非CoreData模型對象嗎?