SWIFT CoreData NSManagedObject
我有一个自定义NSManagedObject(在Swift中),看起来像这样
import UIKit import CoreData @objc(Item) class Item: NSManagedObject { @NSManaged var title:String func entityName() -> String{ println("Entity Name") let item = "Item" return item } func insertItemWithTitle (title: String? , managedObjectContext:NSManagedObjectContext) -> Item{ println(title) let item = NSEntityDescription.insertNewObjectForEntityForName(entityName(), inManagedObjectContext: managedObjectContext) as Item if title { item.title = title! } return item }
}
什么是正确的方式来初始化这样的东西,并使用它
核心数据(Core Data)负责实例化(例如init
),因此build议您使用类工厂方法。 例如:
@objc(Item) class Item: NSManagedObject { @NSManaged var title:String class func entityName() -> String { return "Item" } class func insertItemWithTitle(title: String, managedObjectContext:NSManagedObjectContext) -> Item { let item = NSEntityDescription.insertNewObjectForEntityForName(Item.entityName(), inManagedObjectContext: managedObjectContext) as! Item item.title = title return item } }
您也可以使参数title
不可选,因为托pipe属性title
是必需的。 或者,您可以使title
可选,但要确保您的模型已更新以反映此更改。
嗯。 怎么样
var item = Item.insertItemWithTitle(title:"Item Title", context) item.entityName()