Core data 实例化NSManagedObject实例的不同方法

Core data 实例化NSManagedObject实例的不同方法,core-data,Core Data,作为CoreData的初学者,到目前为止,我已经找到了三种实例化NSManagedObject实例的不同方法: 1: let myEntity = NSEntityDescription.entityForName("MyEntity", inManagedObjectContext: managedContext)! let instance = MyEntity(entity: myEntity, insertIntoManagedObjectContext: managedContext)

作为CoreData的初学者,到目前为止,我已经找到了三种实例化NSManagedObject实例的不同方法:

1:
let myEntity = NSEntityDescription.entityForName("MyEntity", inManagedObjectContext: managedContext)!
let instance = MyEntity(entity: myEntity, insertIntoManagedObjectContext: managedContext)
instance.someProperty = someValue
try! managedContext.save()

2:
let myEntity =  NSEntityDescription.entityForName("MyEntity",
inManagedObjectContext:managedContext)

let instance = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
instance.setValue(someValue, forKey: "someProperty")
try! managedContext.save()

3:
let instance = NSEntityDescription.insertNewObjectForEntityForName("MyEntity", inManagedObjectContext: managedContext) as! MyEntity
instance.somePropery = someValue
try! managedContext.save()

这些方法之间有显著差异吗?

前两种方法相同。在这两种情况下,您都使用相同的
NSManagedObject
init方法

NSEntityDescription.insertNewObjectForEntityForName(entityName:String,inManagedObjectContext:NSManagedObjectContext)
的文档说明此方法“在概念上类似于”
NSManagedObject.init(实体:NSEntityDescription,InsertingManagedObjectContext:NSManagedObjectContext?)

:

所以,你可以使用任何方便你的方法