首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何为我的应用程序的每个用户制作NSUserDefaults?

我如何为我的应用程序的每个用户制作NSUserDefaults?
EN

Stack Overflow用户
提问于 2015-02-03 12:16:32
回答 5查看 1K关注 0票数 1

我需要在我的应用程序中访问UserDefaults。但我需要为每个用户保存设置,谁是在应用程序注册。例如:

代码语言:javascript
运行
复制
[[NSUserDefaults standartUserDefaults] setObject:@"15:00" forKey:@"lastTime"]// for current user1

在退出user1和登录user2之后:

代码语言:javascript
运行
复制
[[NSUserDefaults standartUserDefaults] setObject:@"11:00" forKey:@"lastTime"]// for current user2

而且,如果我尝试读取key @"lastTime",那么我将得到最后一个值,而不是这个用户。我可以将userDefaults存储在differentFiles中,作为一个变体?或者其他解决方案?

更新:最后我解决了这个问题:

代码语言:javascript
运行
复制
#define UserDefaults  [NSUserDefaults standardUserDefaults]
#define uKey(key)  [NSString stringWithFormat:@"%@_%@",key,User.user_name]


[UserDefaults setInteger:lastData forKey:uKey(@"lastResultDataId")];
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-02-03 12:48:08

iOS上没有用户的概念(还没有)。每个设备,一个iPhone或iPad,假定只有一个用户。显然,这通常是不正确的,特别是在iPad上,所以有些应用程序为不同的人创建了使用该设备的方案。如果你这么做了--还不清楚你有--那么你就知道用户名了。如果您正在编写Mac应用程序,那么使用NSUserName()获取登录用户的名称。在此之后,只需将用户名连接到来自NSUserDefaults的密钥上,如下所示:

代码语言:javascript
运行
复制
NSString *username = @"john";
[[NSUserDefaults standardUserDefaults] setObject:@"15:00" forKey:[NSString stringWithFormat:@"last_login_username_%@", username]];

(对于Mac应用程序,用户名可以设置为NSUserName(),也可以设置为多用户iOS应用程序的任何方案)

票数 1
EN

Stack Overflow用户

发布于 2015-02-03 12:21:38

如果您有某种用户标识符,请为不同的用户使用字典:

代码语言:javascript
运行
复制
NSDictionary *user = @{@"lastTime": @"15:00" };
[[NSUserDefaults standartUserDefaults] setObject:user forKey:@"userId"];
票数 0
EN

Stack Overflow用户

发布于 2015-02-03 12:29:39

您必须有某种方法来唯一地标识用户,然后在设置/获取lastTime值时,只需在键中使用任何内容- UUID、用户名、电子邮件、lastTime

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28298701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档