In swift previously, I was able to use a code like this to add new data to my \"TestEntity\" in my data model.
NSManagedObject
was created for my \"TestEnti
I'm not an core-data expert, but the API offers 3 distinct ways of creating an NSManagedObject
instance. I'm not aware if any of them offer any benefit over the other.
Assuming you have an entity/NSManagedObject subclass called TestEntity
then all of the below are the same:
New way (no casting required) +iOS10
:
let test = TestEntity(context: context)
test.attribute1 = "a value"
Older ways (casting is not required if you're ok with using setValue
. With casting you can use dot notation. +iOS3
let testEntity = NSEntityDescription.entity(forEntityName: "TestEntity", in: context)
let test1 = NSManagedObject(entity: testEntity!, insertInto: context)
test1.setValue("a value", forKey: "attribute1")
let test2 = NSManagedObject(entity: testEntity!, insertInto: context) as! TestEntity
test2.attribute1 = "a value"
or:
let test1 = NSEntityDescription.insertNewObject(forEntityName: "TestEntity", into: context)
test1.setValue("a value", forKey: "attribute1")
let test2 = NSEntityDescription.insertNewObject(forEntityName: "TestEntity", into: context) as! TestEntity
test2.attribute1 = "a value"
once you create the NSManagedObject instance and assign its attributes then you just save it in the context.
do {
try context.save()
print("saved!")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
} catch {
}