【问题标题】:How to store values in NSUserDefaults like as a Database?如何像数据库一样将值存储在 NSUserDefaults 中?
【发布时间】:2010-11-24 18:10:35
【问题描述】:

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

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

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

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

可以使用NSUserDefaults吗?

【问题讨论】:

    标签: objective-c iphone


    【解决方案1】:

    目标-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 中。使用钥匙串存储安全数据。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 技术上不是问题的答案,而是更好的建议。
      猜你喜欢
      • 2016-05-19
      • 2018-08-18
      • 2012-01-28
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      相关资源
      最近更新 更多