Ich habe einen Webservice, der mir einige Daten wie name
, login
und auth_token
zurückgibt. Bisher habe ich in den NSUserDefaults name
und login
gespeichert. Jetzt möchte ich auch sicher auth_token
speichern, also habe ich beschlossen, es in den Schlüsselbund zu legen. Zu diesem Zweck habe ich beschlossen, https://github.com/matthewpalmer/Locksmith dieses Plugin zu verwenden.Warum kann ich das empfangene (durch den Alamofire-Aufruf) Token nicht im Schlüsselbund in meiner Swift-App platzieren?
Bisher sah mein Code wie folgt aus:
Alamofire.request(.POST, "\(serverURL)/authorization", parameters: params)
.validate()
.response { (request, response, data, error) in
if(error != nil){
print("error = \(error)")
}else{
let username = json["name"]
let login = json["login"]
let auth_token = json["auth_token"]
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(login, forKey: "login")
defaults.setObject(username, forKey: "username")
defaults.synchronize()
let sb = UIStoryboard(name: "Main", bundle: nil)
if let tabBarVC = sb.instantiateViewControllerWithIdentifier("TabController") as? TabController {
self.window!.rootViewController = tabBarVC
}
}
}
aber wenn ich diese Zeile hinzugefügt:
try Locksmith.saveData(["auth_token": json["auth_token"]], forUserAccount: "my_auth_token")
direkt danach:
let defaults = NSUserDefaults.standardUserDefaults()
dann Fehler Ich erhalte auf Alamofire.request
sagen:
Cannot call value of non-function type 'NSHTTPURLResponse?'
Also meine Frage ist - wie kann ich meine auth_token
, die aus dem Webservice im Schlüsselbund kommt speichern?
Hm etwas sein, ich danke Ihnen für eine sehr klare Antwort! Zwei Fragen allerdings - 1) Könnten Sie mir einen kleinen Codeausschnitt zeigen, wie und wo genau könnte ich es ausdrücken? und die zweite Sache - du hast über Fehler geschrieben, die Schlosser vielleicht werfen - ich dachte nur, dass es eine normale Art ist, Daten in einem Schlüsselspeicher zu speichern - was kann hier schiefgehen? : D – user3766930
@ user3766930 Wenn meine aktualisierte Antwort Ihnen geholfen hat, akzeptieren Sie sie bitte als Antwort – bobDevil