我需要在我的应用程序中访问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 14:20:18
就我个人而言,我会使用一个类似的NSDictionary,并且每个用户都有一本字典,并将它存储到NSUserDefaults中,该密钥由它们的用户名构造而成,如下所示。
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];要检索这些数据,您需要做的就是知道用户的用户名是什么,然后做什么
NSString *userDictKey = [NSString stringWithFormat:@"uk.co.yourAppName.%@", username];
NSDictionary *userRetrievedDict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:userDictKey];但是,如果您想对此数据进行任何修改,则需要对其进行调整,以便将数据移动到NSMutableDictionary中,以便您可以更新数据,然后将其存储回NSUserDefaults中
https://stackoverflow.com/questions/28298701
复制相似问题