多个持久性商店

时间:2017-02-12 11:12:03

标签: ios swift core-data

我需要将数据分别保存在不同的商店(用户配置文件)中。实现这一目标的最佳方法是什么?我将在运行时使用Persistent Object Stores。我应该只是remove()当前的那个和addPersistentStore()来创建一个新的或使用早期创建的实例。

1 个答案:

答案 0 :(得分:1)

我会有一个核心数据堆栈(使用NSPersistentContainer)进行用户管理。此堆栈将具有基本帐户详细信息和sql文件的名称。 (只存储sql文件名而不是完整的url路径,因为路径可以在极少数情况下改变,例如iTunes恢复)。这将用于登录或选择帐户页面。

然后,我将使用存储在用户帐户对象中的sql文件名设置第二个核心数据堆栈。这将是应用程序使用的主堆栈。如果您需要注销,请拆掉第二个堆栈并重新开始。删除和添加存储是一个坏主意,因为它不会处理行缓存或其他浮动的托管对象。

或者您可以简单地拥有一个核心数据堆栈并管理关系,以便每个对象都属于一个用户对象。然后,您将管理您的提取只能查看属于正确用户的对象。