如何在NSUserDefaults中存储值,如数据库?

时间:2010-11-24 18:10:36

标签: objective-c iphone

我需要使用NSUserDefaults创建一个应用程序。

在我的第一个视图中,我将输入密码。在第二个视图中,我将输入确认密码。然后验证将发生;之后如果密码在两个视图中都匹配,则会打开成功窗口。之后会有一些意见。我需要将密码保存在NSUserDefaults以备将来使用。

如果我在验证后关闭我的应用程序,那么如果我现在将构建并再次运行我的应用程序,则密码验​​证窗口不应该打开。

只有一个视图会询问密码,如果当前密码等于终止应用程序密码之前,则应用程序的成功视图将打开。现在,验证应该与当前密码进行比较NSUserDefaults的值[即旧密码,在终止我的应用程序之前存储]。

可以使用NSUserDefaults

2 个答案:

答案 0 :(得分:11)

<强>目标-C:

保存默认值

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];

要检索

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];

<强>夫特:

var userDefaults : NSUserDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setObject("TextToSave", forKey: "keyToLookupString")
//To retrieve
let mySavedObject = userDefaults.objectForKey(@"keyToLookupString")

无论如何只是一个提示不会在NSUserdefaults中存储密码。使用钥匙串存储安全数据。

答案 1 :(得分:8)

请勿使用NSUserDefaults来保存用户密码!这不安全。您应该将密码存储在加密的密钥链中,这里有一个小的包装类,可以很容易地将用户名/密码保存到钥匙串中:

http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code