我也有一个登出按钮来启用切换用户.这不会发生很多,但仍然是必要的).
现在如果不同的用户登录,我需要获取他的具体数据.但是我该如何做呢?
我不想在他登出时删除用户的数据库,即使其他用户从设备登录,我也想保存它.
我唯一可以想到的是通过Core Data为我保存的每个实体添加一个“ownerID”属性,并且在我获取对象时使用该属性作为谓词.
但这似乎太凌乱了.
在标准核心数据模板中,永久存储位置设置在应用程序委托的persistentStoreCoordinator方法内.正是这一行:
NSURL *storeURL = [[self applicationdocumentsDirectory] URLByAppendingPathComponent:@"coreDataTemplate.sqlite"];
这基本上意味着数据将被存储在文档目录中的一个sqlite数据库文件中,该文件将被称为coreDataTemplate.sqlite.
假设在执行此代码之前,您已使用户登录,并根据某些列表检查其用户ID,并为它们提供唯一的标识符.进一步假设标识符已被存储在用户默认值中.
将上面的行更改为:
Nsstring *userIDentifIEr = [[NSUserDefaults standardUserDefaults] stringForKey:@"loggedOnUserID"]; NSURL *storeURL = [[self applicationdocumentsDirectory] URLByAppendingPathComponent:[Nsstring stringWithFormat:@"%@_coreDataTemplate.sqlite",userIDentifIEr]];
这将为您的用户提供一个唯一的文件名.
如果您更改用户,那么您将需要保存当前的托管对象上下文,然后将应用程序代理的持久存储协调器和托管对象上下文设置为nil.当它们被重新访问时,它将在新的用户ID下.
总结以上是内存溢出为你收集整理的ios – 如何处理多用户数据库全部内容,希望文章能够帮你解决ios – 如何处理多用户数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)