Swift + 锁匠:未获取存储的钥匙串值

Swift + Locksmith: Not getting stored Keychain Value

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

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

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")
    }

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

No Password

在控制台中。但是,当我在 let dictionary 上设置断点,然后在控制台中键入 po dictionary 时,我得到以下输出:

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

就在那里,有人能看出为什么我的代码没有从钥匙串中获取密码吗?

您似乎错误地从词典中提取了 "password" 字符串。在这种情况下不要使用 .stringValue 函数。更改此行:

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

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