CoreData - 创建新实体 - 为什么不需要保存它?

时间:2016-09-09 09:53:10

标签: ios swift core-data nsmanagedobjectcontext swift3

我认为你可以像这样创建新的实体(swift 3):

let person = Person(context: persistentContainer.viewContext) person.name = "Some Name"

这似乎就是这样。它永久地拯救了新人(至少我是这么认为的。)

为什么不需要拨打AppDelegate的saveContext()。 swift(或persistentContainer.viewContext.save()哪个基本相同,对吗?)?

每次更改某些entity时,都需要保存它。创建新entities时为什么不是这种情况?

提前致谢!!!

2 个答案:

答案 0 :(得分:1)

根据您对问题的评论,您正在致电saveContext()

进入AppDelegate并查看applicationWillTerminate,在那里调用saveContext()

简而言之,如果您想保留数据然后是,则需要致电saveContext()

答案 1 :(得分:1)

对于您的anser,您必须了解核心数据堆栈

https://developer.apple.com/library/ios/documentation/DataManagement/Devpedia-CoreData/coreDataStack.html#//apple_ref/doc/uid/TP40010398-CH25-SW1

在保存上下文之前,您对托管对象所做的更改不会提交给父存储。