Swift 使用锁匠在钥匙链中存储多个值

Swift 使用锁匠在钥匙链中存储多个值,swift,keychain,Swift,Keychain,能否在一个for useraccount下存储多个键/值对 try? Locksmith.saveData(["access_token" : access_token], forUserAccount: "UserData") try? Locksmith.saveData(["email" : email!], forUserAccount: "UserData") try? Locksmith.saveData(["markets" : market], forUserAccount: "

能否在一个
for useraccount
下存储多个键/值对

try? Locksmith.saveData(["access_token" : access_token], forUserAccount: "UserData")
try? Locksmith.saveData(["email" : email!], forUserAccount: "UserData")
try? Locksmith.saveData(["markets" : market], forUserAccount: "UserData")
查找
电子邮件时,此代码失败。
。我唯一能做的就是为useraccount创建多个
字符串:
UserData
UserData1
UserData3
,等等。我尝试了
updateData
,但运气不佳。如果用户帐户的
forUserAccount
必须是唯一的,那么它的用途是什么?如果是这样的话,似乎没有必要

let userIDNumber = userID as NSNumber
let userIDString : String = userIDNumber.stringValue
let keychainData = [_keychainEmailKey: email, _keychainPasswordKey: password, _keychainUserIDKey: userIDString]

Locksmith.updateData(keychainData, forUserAccount: email)

其中
\u keychainEmailKey
等是键的常量。因此,
forUserAccount
应该是唯一的,可能它覆盖了以前的值

正如@nyekimov的回答所暗示的,可以为帐户存储一个值字典。为了澄清,这里有一个代码片段:

    do
    {
        try Locksmith.saveData(["user": "notMyRealUsername", "password":"123456"], forUserAccount: "myUserAccount") //store it
        let dictionary = Locksmith.loadDataForUserAccount("myUserAccount") //load it 
        print(dictionary) //let's see what we've got
    } 
    catch 
    {
    // handle errors here    
    }
当帐户存在时,请使用
尝试Locksmith.updateData([“用户”:“NotMyRealUserName”、“密码”:“123456”]、forUserAccount:“myUserAccount”)