Хранение нескольких значений в связке ключей с помощью Locksmith
Можете ли вы хранить несколько пар ключ / значение под одним forUserAccount
?
try? Locksmith.saveData(["access_token" : access_token], forUserAccount: "UserData")
try? Locksmith.saveData(["email" : email!], forUserAccount: "UserData")
try? Locksmith.saveData(["markets" : market], forUserAccount: "UserData")
Этот код не работает при поиске "email."
, Единственный способ сделать это - создать несколько forUserAccount
строки: UserData
, UserData1
, UserData3
и т.д. я пробовал updateData
без удачи Если forUserAccount
должен быть уникальным, для чего он нужен? Кажется ненужным, если это так.
2 ответа
let userIDNumber = userID as NSNumber
let userIDString : String = userIDNumber.stringValue
let keychainData = [_keychainEmailKey: email, _keychainPasswordKey: password, _keychainUserIDKey: userIDString]
Locksmith.updateData(keychainData, forUserAccount: email)
куда _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
}
использование try Locksmith.updateData(["user": "notMyRealUsernameEither", "password":"123456"], forUserAccount: "myUserAccount")
когда аккаунт существует.