【发布时间】:2017-06-18 10:47:08
【问题描述】:
我目前如何使用核心数据:
我的应用程序加载:在此页面上,我创建了一个托管对象上下文,获取托管对象,然后加载/显示它们。这是一个表格视图,所以我允许删除。为了删除,我创建了一个托管对象上下文并删除了托管对象并重新加载了 tableview。在我的整个应用程序中都使用了相同的方法,还有其他操作,例如更新等。 重点是为每个操作创建一个新的托管对象上下文。
我目前对 Core Data 的理解是,Managed Object Context 有点像一个队列,里面装满了动作。托管对象是被修改并放入队列以执行操作的项目。按照这个逻辑,整个app不应该只有一个队列吗?
主要问题:
我需要在每个操作之前创建一个托管对象上下文吗?或者我可以在应用程序委托中创建一个托管对象上下文说完成启动了吗?并在整个应用程序中使用它?
编辑:
对于未来的观众(如果我理解所提供的答案),我的代码现在通常如下所示:
- 我有一个 Core Data 类,在这个函数中创建了一个
ManagedObjectContext。 - 这个创建 MOC 的函数在应用委托中调用,成功后返回 MOC,然后我将其存储在单例中。
-
在整个应用程序中,由于我需要对核心数据对象进行更改,因此我执行以下操作:
if let managedContext = ShareData.sharedInstance.managedObjectContext { // DO STUFF, update, delete, create ect ect ect }
编辑 2:我可能误解了“不要在应用程序委托中创建 MOC”,目前正在研究这个并试图学习创建 MOC 的最佳位置。如果您可以启动应用程序的每个视图都需要 MOC,那么在其他地方创建一个似乎很乏味。
【问题讨论】:
标签: ios swift core-data nsmanagedobject nsmanagedobjectcontext