Rah*_*iya 2 core-data ios swift
我试图插入到CoreData而不创建NSManagedObject的子类.但我的应用程序崩溃与NSManagedObject setValue:forUndefinedKey"名称"在类别中.
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let entitiyDesc = NSEntityDescription()
entitiyDesc.name = "Category"
guard let data = model.data else { return }
for d in data {
let managedObject = NSManagedObject.init(entity: entitiyDesc, insertIntoManagedObjectContext: managedObjectContext)
managedObject.setValue(d.name, forKey: "name")
}
try! managedObjectContext.save()
Run Code Online (Sandbox Code Playgroud)
子类化NSManagedObjects有什么好处
Mar*_*rra 14
使用Core Data的方式没有任何问题.通常,您在以下时间开始想要子类化:
NSManagedObjectNSManagedObject我确信该列表中还有更多内容.
您永远不需要子类化,NSManagedObject但在许多情况下,它确实使您的代码更清晰,更易于维护.
您对代码的一些评论:
NSEntityDescription并且NSManagedObject不应该以这种方式创建.您应该使用的简便方法NSEntityDescription.insertNewObjectForEntityForName(_:),而不是NSManagedObjectContext通过AppDelegate这样的设计很差劲(是的,我知道它在苹果模板).如" 核心数据编程指南"中所讨论的那样,使用依赖注入要好得多,并避免访问时所固有的紧密耦合AppDelegate| 归档时间: |
|
| 查看次数: |
739 次 |
| 最近记录: |