2015-10-15 36 views
0

我正在iOS上開發一個非常大的應用程序。到現在爲止,我一直在使用CoreData這樣的:如何使用NSManagedObject的子類?

有一個類,有方法,如-(NSArray*)getAllEntries,或-(void)saveEntry:(Entry *)entry,並且Entry有一個像字符串,字典,其他對象的數組幾個屬性是可能或不可能保存在CoreData等中。大多數情況下,我使用其默認ctor初始化Entry,並通過使用valueForKey:從CD存儲中獲取NSManagedObject中的值來將值設置爲屬性。

我開始這樣編碼,因爲當時我剛接觸obj-c,而且來自C++/Java背景。

現在,我正在研究應用程序中的新模塊,並且希望完成obj-c的所有操作。

據我所知,如果使Entry對象成爲NSManagedObject的子類,我只能使用[NSEntityDescription insertNewObjectForEntityForName:@"Entries" inManagedObjectContext:context];來初始化它,這意味着它會綁定到實體?問題是,我可能想要從我從互聯網上獲取的數據中初始化該對象,並且我可能不想將其保存到持久存儲中。或者,我可能想將對象從商店中取出,編輯值但不保存到商店。一切都會很好(可能),但據我瞭解,如果我在用於實例化對象的上下文中調用save方法,該對象將被保存到我不想保存的商店。

所以現在我有點困惑我應該如何繼續這樣做。是我做Core Data的舊方法好嗎,還是應該使用NSManagedObject的子類並使用我還不知道的一些技巧?如果是後者,那有什麼技巧?

+0

您可以與核心數據直接工作狀態下進行的,但如果你想使您的生活更輕鬆我建議您查看https://github.com/magicalpanda/MagicalRecord –

+2

我極力不鼓勵使用魔術記錄。它可能適用於最簡單的應用程序,但如果你想要任何結構,那就太麻煩了。 – Avi

回答

1

鏈接的答案是不鼓勵的,但你真的想閱讀關於核心數據的Apple廣泛的文檔。特別是,谷歌的「創建和修改自定義管理對象」。

(在這個link目前發現的。)

+0

答案中的鏈接並不鼓勵。鏈接*只*答案是。 –

相關問題