在我的应用程序中,我使用登录表单进入应用程序,同时使用NSUserDefaults
来存储用户首选项,例如:
[storeData setObject:self.loginField.text forKey:@"USEREMAIL"];
[storeData setObject:self.PasswordField.text forKey:@"PASSWORD"];
就像我存储的那样,如果新用户登录NSUserDefaults存储的值将被更改。但我想要两个首选项(例如:新用户标识和旧用户标识以及密码)。那么请解释如何为同一个密钥存储多个值?
答案 0 :(得分:2)
答案 1 :(得分:0)
创建全局NSMutableArray
并在NSDictionary
对象中添加以上详细信息并将所有对象存储在数组中。这样您将拥有所有用户对象。您可以随时获取它。
答案 2 :(得分:0)
首先使用AppDelegate类创建全局数组,例如..
userDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingtblArrayForSearch = [userDefaults objectForKey:@"arrScheduleDates"];
if (dataRepresentingtblArrayForSearch != nil) {
NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingtblArrayForSearch];
if (oldSavedArray != nil)
arrScheduleDates = [[NSMutableArray alloc] initWithArray:oldSavedArray];
else
arrScheduleDates = [[NSMutableArray alloc] init];
} else {
arrScheduleDates = [[NSMutableArray alloc] init];
}
[arrScheduleDates retain];
之后当你想要存储新记录时,然后从arrScheduleDates
数组中获取所有记录,之后添加新记录,然后像上面那样添加整个数组...
我希望你明白并且对你有帮助......
:)
答案 3 :(得分:0)
满足您要求的绝对最简单的方法是使用用户的电子邮件地址(假设它们都是唯一的)作为字典的存储密钥,并使用密码作为值。
如果您需要存储的密码超过密码,那么密钥的值将是另一个包含用户密钥和值的字典。
简单案例的一个例子看起来类似于:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary *storedUsers = [userDefaults objectForKey:@"userData"];
if (nil == storedUsers) storedUsers = [NSDictionary dictionary];
NSMutableDictionary *mutableStoredUsers = [NSMutableDictionary dictionaryWithDictionary:storedUsers];
NSString *userPassword = [self.PasswordField.text copy]; //add autorelease if you aren't using ARC
NSString *userEmail = [self.loginField.text copy]; //add autorelease if you aren't using ARC
if (nil != userEmail)
{
[mutableStoredUsers setObject:userPassword forKey:userEmail];
}
[userDefaults setObject:[NSDictionary dictionaryWithDictionary:mutableStoredUsers] forKey:@"userData"];
[userDefaults synchronize];
答案 4 :(得分:-1)
首先下载并导入给定链接的文件
https://github.com/ldandersen/scifihifi-iphone/tree/master/security
然后你想存储用户偏好的地方写下这段代码
[SFHFKeyeyinUtils storeUsername:loginField.text andPassword:PasswordField.text forServiceName:@“dhaya”updateExisting:YES error:& error];
你想要密码写这段代码
NSString * password = [SFHFKeychainUtils getPasswordForUsername:loginField.text andServiceName:@“dhaya”error:& error]; NSLog(@“passwordpassword%@”,密码);
这会很有效....