SWIFT CoreData NSManagedObject
Posted
技术标签:
【中文标题】SWIFT CoreData NSManagedObject【英文标题】: 【发布时间】:2014-07-16 23:12:15 【问题描述】:我有一个自定义 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
什么是初始化这样的东西并使用它的正确方法
【问题讨论】:
【参考方案1】:实例化(例如init
)由 Core Data 负责,因此建议使用类工厂方法来完成您的工作。例如:
@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
设为 NOT 可选,因为托管属性 title
是必需的。或者,您可以将 title
设为可选,但请确保您的模型已更新以反映此更改。
【讨论】:
【参考方案2】:嗯。怎么样
var item = Item.insertItemWithTitle(title:"Item Title", context)
item.entityName()
【讨论】:
以上是关于SWIFT CoreData NSManagedObject的主要内容,如果未能解决你的问题,请参考以下文章