所以我目前在coredata文件之间切换时遇到了一些麻烦。方案如下:
1)有两个用户有权使用我的应用程序,每个用户都有自己的sqlite文件来表示他们自己的数据,因为需要分离关注点 2)当用户A注销并且用户B登录时......核心数据应切换到用户B的sqlite文件并仅存在于该文件中。
如果我删除用户A的PSC并为用户B创建一个新的PSC,我是在安全区还是我错过了更多步骤?我注意到用户A的一些数据最终会出现在用户B的核心数据中。
答案 0 :(得分:0)
如果要在持久性存储文件之间切换,并且无法从一个连接到另一个的数据,则需要拆除整个Core Data堆栈,然后重新创建它。这意味着:
NSPersistentStoreCoordinator
s NSManagedObjectContext
s 每个都需要替换为新实例,就像应用首次启动时一样。因此,有时最好还拆除整个UI,从初始视图控制器重新加载所有内容。
如果您已将托管对象中的数据复制到其他位置(其他属性或UI元素),您还需要确保将其删除。
NSManagedObjectModel
可以保留,因为它永远不会保存持久存储中的任何数据。