2016-07-05 68 views
0

所以我似乎有一些問題從Keychain獲取這個值。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") 
    } 

當我運行的應用程序,我得到:

無密碼

在控制檯中。然而,當我設置的讓利字典破發點然後鍵入PO字典在控制檯中我得到這樣的輸出:

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

所以它的存在,任何人都可以明白爲什麼我的代碼是沒有得到的來自鑰匙串的密碼?

+0

你運行模擬器的應用程序? –

+0

@LorenzoBoaro yup – JamesG

回答

3

看起來像是在您的「密碼」字符串中錯誤地拉出字典。在這種情況下不要使用.stringValue函數。改變這一行:

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

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