Хранение нескольких значений в связке ключей с помощью 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") когда аккаунт существует.

Другие вопросы по тегам