我需要在我的应用程序中访问UserDefaults。但我需要为每个用户保存设置,谁是在应用程序注册。例如:
[[NSUserDefaults standartUserDefaults] setObject:@"15:00" forKey:@"lastTime"]// for current user1在退出user1和登录user2之后:
[[NSUserDefaults standartUserDefaults] setObject:@"11:00" forKey:@"lastTime"]// for current user2而且,如果我尝试读取key @"lastTime",那么我将得到最后一个值,而不是这个用户。我可以将userDefaults存储在differentFiles中,作为一个变体?或者其他解决方案?
更新:最后我解决了这个问题:
#define UserDefaults [NSUserDefaults standardUserDefaults]
#define uKey(key) [NSString stringWithFormat:@"%@_%@",key,User.user_name]
[UserDefaults setInteger:lastData forKey:uKey(@"lastResultDataId")];发布于 2015-02-03 12:48:08
iOS上没有用户的概念(还没有)。每个设备,一个iPhone或iPad,假定只有一个用户。显然,这通常是不正确的,特别是在iPad上,所以有些应用程序为不同的人创建了使用该设备的方案。如果你这么做了--还不清楚你有--那么你就知道用户名了。如果您正在编写Mac应用程序,那么使用NSUserName()获取登录用户的名称。在此之后,只需将用户名连接到来自NSUserDefaults的密钥上,如下所示:
NSString *username = @"john";
[[NSUserDefaults standardUserDefaults] setObject:@"15:00" forKey:[NSString stringWithFormat:@"last_login_username_%@", username]];(对于Mac应用程序,用户名可以设置为NSUserName(),也可以设置为多用户iOS应用程序的任何方案)
发布于 2015-02-03 12:21:38
如果您有某种用户标识符,请为不同的用户使用字典:
NSDictionary *user = @{@"lastTime": @"15:00" };
[[NSUserDefaults standartUserDefaults] setObject:user forKey:@"userId"];发布于 2015-02-03 12:29:39
您必须有某种方法来唯一地标识用户,然后在设置/获取lastTime值时,只需在键中使用任何内容- UUID、用户名、电子邮件、lastTime。
https://stackoverflow.com/questions/28298701
复制相似问题