Swift + Locksmith:没有存储钥匙串值

时间:2016-07-05 20:04:28

标签: ios swift keychain

所以我似乎在从钥匙串中获取此值时遇到了一些问题。

这是我用来保存密码的方法。这在第二个视图控制器上调用。

do {
   try Locksmith.updateData(["password": "Boom123456"], forUserAccount: "KeychainDemo")
   } catch {
    print("Unable to set password")
}

当我回到第一个检查钥匙串项目的视图控制器时:

 let dictionary = Locksmith.loadDataForUserAccount("KeychainDemo")

    if let passwordSaved = dictionary!["password"]?.stringValue {

        print("password: \(passwordSaved)")


    } else {
        print("No Password")
    }

当我运行应用程序时,我得到:

  

无密码

在控制台中。但是,当我在让字典上设置断点,然后在控制台中输入 po字典时,我得到了这个输出:

Optional <Dictionary<String, AnyObject>>
Some : 1 elements
   [0] : 2 elements
      - .0 : "password"
      - .1 : Boom123456

所以它就在那里,任何人都可以看到为什么我的代码没有从Keychain获取密码?

1 个答案:

答案 0 :(得分:3)

看起来你错误地将字典中的“密码”字符串拉出来了。在这种情况下,请勿使用.stringValue函数。改变这一行:

if let passwordSaved = dictionary!["password"]?.stringValue {

if let passwordSaved = dictionary!["password"] as? String {