Swift + Locksmith:没有获取存储的钥匙串值
所以我似乎有一些问题从钥匙链获得这个价值。
这是我用来保存密码。 这在第二个视图控制器上被调用。
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") }
当我运行的应用程序,我得到:
没有密码
在控制台。 但是,当我在let词典上设置断点,然后在控制台中键入po字典时,我得到这个输出:
Optional <Dictionary<String, AnyObject>> Some : 1 elements [0] : 2 elements - .0 : "password" - .1 : Boom123456
所以它在那里,任何人都可以看到为什么我的代码没有从钥匙串获取密码?
看起来你是不正确的拉出你的“密码”string的字典。 在这种情况下不要使用.stringValue函数。 改变这一行:
if let passwordSaved = dictionary!["password"]?.stringValue {
至
if let passwordSaved = dictionary!["password"] as? String {