![](/img/trans.png)
[英]How to use Core Data managedObjectContext properly and a proper way to save context?
[英]How to use Core Data model subclasses outside a Core Data context?
我試圖在Swift中制作一個天氣應用程序,該應用程序將保存我添加到Core Data中的城市,每個城市都包含一個天氣對象,該對象也保存到Core Data和其他各種變量中。
但是我很快就發現,在Core Data上下文之外使用Core Data NSManagedObjects子類幾乎是不可能的(處理NSNumber和類似的東西,沒有自定義init,被迫保存在某個地方,如果我明天停止使用Core Data,該怎么辦...) 。
那么,繼續使用Core Data並在其上下文之外使用模型的最佳實踐是什么?
我現在的解決方案是為每個模型創建一個類,因此:
class City
{
var country: String?
var name: String?
// ...
}
是對應的類:
class CD_City
{
@NSManaged var country: String?
@NSManaged var name: String?
// ...
}
這樣我就可以在任何地方使用City
。 但是我需要一個func才能將City
變成CD_City
和相反的City
。 所以我真的不確定我是不是最好的方法。 另外,您會推薦什么作為轉換方法?
(僅供參考,我使用MagicalRecord作為核心數據助手)
如果您不想保存NSManagedObject或其子類,則可以使用以下方法創建它
init(entity entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?)
並將nil
傳遞給insertIntoManagedObjectContext
這將為您創建一個實例,但不會保存到MOC。
如果以后需要將其保存到MOC,則可以使用NSMangedObjectContext的
func insertObject(_ object: NSManagedObject)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.