NSManagedObject的两个初始化器有什么区别

时间:2019-06-26 15:23:01

标签: swift core-data nsmanagedobject

如果有人可以帮助我,请问通过以下初始化方法创建NSManagedObject子类的对象有何区别:

init(context:)

vs

init(entity:insertInto:)

谢谢。

1 个答案:

答案 0 :(得分:0)

这是关于隐式和显式指定实体名称的问题

guard let appDelegate =
    UIApplication.shared.delegate as? AppDelegate else {
        return
}

let managedContext =
    appDelegate.persistentContainer.viewContext

1-这将根据类Person表示的名为CustomObj的实体创建一个对象,并将其插入managedContext

let entity =
    NSEntityDescription.entity(forEntityName: "Person",
                               in: managedContext)!

let person1 = CustomObj(entity: entity, insertInto: managedContext)

2-这将从类CustomObj中创建一个对象,其中实体名称为CustomObj,并将其插入managedContext

let person2 = CustomObj(context: managedContext)

class CustomObj:NSManagedObject {

}