我在IOS(xcode 6.4)中構建了一個簡單的登錄和註冊。要保存用戶名和密碼,我正在使用NSUserDefaults
。但問題是我不能存儲多個用戶名和密碼,因爲我將數據保存到同一個鍵。什麼是實現它的替代方法。我在stackoverflow上看到了一些類似的問題,但無法理解解決方案。所以任何人都可以用簡單的方式解釋這裏是我的代碼:在NSUserDefaults中存儲多個鍵值對
//function for login pressed
- (IBAction)login:(UIButton *)sender
{
NSLog(@"%@,%@",userNameField.text,passwordField.text);
username = [[NSUserDefaults standardUserDefaults] objectForKey:@"username"];
password = [[NSUserDefaults standardUserDefaults] objectForKey:@"password"];
NSLog(@"%@,%@",username,password);
bool validUser = [username isEqualToString:userNameField.text];
bool validPassword = [password isEqualToString:passwordField.text];
if ([self checkWhetherFieldIsEmpty:userNameField.text :passwordField.text])
{
[self displayAlert:@"All Fileds are mandatory"];
}
else if(validUser && validPassword)
{
[self displayAlert:@"Successfull Login"] ;
}
else{
// NSLog(@"Invalid username or password");
[self displayAlert:@"Invalid login or password"];
}
}
//function when register button is pressed
- (IBAction)register:(UIButton *)sender
{
if([[[NSUserDefaults standardUserDefaults] objectForKey:@"username"] isEqualToString:userNameField.text])
{
[self displayAlert:@"User already exist"];
userNameField.text = @"";
passwordField.text = @"";
}
else
{
[[NSUserDefaults standardUserDefaults] setObject:userNameField.text forKey:@"username"];
[[NSUserDefaults standardUserDefaults] setObject:passwordField.text forKey:@"password"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog(@"user Created successfully");
[self displayAlert:@"Registration Successfull"];
}
}
不要使用NSUserDefaults的存儲密碼,它是不安全的。使用鑰匙串來存儲這些數據。 –
@SimonMcLoughlin我知道。但我試圖學習使用NSUserDefaults –
對於那些擔心密碼,只是將其視爲一個關於以用戶默認值存儲多對數據的一般問題。 – Avi