没有contextsave的CoreData保存记录

时间:2017-02-14 01:03:29

标签: core-data swift3

Project是我的NSManagedObject

 let proj = Project(context: context!)
 //at this point when i try to fetch for my proj nothing is there

 proj.title = "title"
 //at this point I can fetch my project record

现在我尝试

let proj = Project(context: context!)
let proj1 = Project(context: context!)
//at this point when i try to fetch for my proj nothing is there

 proj.title =  "title"
 //I find 1 record

我稍微更改了我的代码

let proj = Project(context: context!)
let proj1 = Project(context: context!)
//when i try to fetch for my proj nothing is there

 proj.title = "title"
 proj1.title = "title"

 //I find 2 record

看起来像proj.title =" title"正在保存记录

我的子类

中没有.​​save() 这是为什么?我很困惑

我认为只有在你打电话时才能保存对象 managedObjectContext.save

1 个答案:

答案 0 :(得分:1)

在ManagedObjectContext中插入后,对象立即存在。

.save()将更改从MOC推送到其父上下文或持久存储。我们的想法是你可以在一个临时MOC中操纵对象,但是为了响应“取消”而扔掉它们。

如果使用指向同一持久性存储的不同MOC进行提取,则在用于插入的MOC上没有.save()时,您将看不到更改。