首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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

Stack Overflow用户

发布于 2015-02-03 14:20:18

就我个人而言,我会使用一个类似的NSDictionary,并且每个用户都有一本字典,并将它存储到NSUserDefaults中,该密钥由它们的用户名构造而成,如下所示。

代码语言:javascript
运行
复制
NSMutableDictionary *userDict = [[NSMutableDictionary alloc] init];
NSString *username = "myUsername";
NSDate *currentDateTime = [NSDate date];

[userDict setObject:username forKey:@"username"];
[userDict setObject:currentDateTime forKey:@"lastAccessed"];

/* Any other user date you want to store about this user
 * Note we are going to use NSUserDefaults which is not
 * secure so do not store sensitive data in here
 */

 NSString *userDictKey = [NSString stringWithFormat:@"uk.co.yourAppName.%@", username];
 [[NSUserDefaults standardUserDefaults] setObject:userDict forKey:userDictKey];
 [[NSUserDefaults standartUserDefaults] synchronize];

要检索这些数据,您需要做的就是知道用户的用户名是什么,然后做什么

代码语言:javascript
运行
复制
NSString *userDictKey = [NSString stringWithFormat:@"uk.co.yourAppName.%@", username];
NSDictionary *userRetrievedDict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:userDictKey];

但是,如果您想对此数据进行任何修改,则需要对其进行调整,以便将数据移动到NSMutableDictionary中,以便您可以更新数据,然后将其存储回NSUserDefaults

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

https://stackoverflow.com/questions/28298701

复制
相关文章

相似问题

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