0
基本上,我有一個異步聯網功能:如何在Swift中存儲塊中的信息?
func networking(callback:NSDictionary -> Void) {
//stuff happens here
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
if let error = error {
print("ERROR: \(error)")
return
}
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
//print(json)
callback(json as! NSDictionary)
if let dataDict = json["data"] as? [String:AnyObject],
let rememberToken = dataDict["remember_token"] as? String {
self.rememberToken = rememberToken
//print("SUCCESS: \(rememberToken)")
// display success label & make button to get schedules available
}
} catch {
print(error)
}
}
task.resume()
}
所有我能做的就是打印(JSON)數據,我找回。我真的只想記住令牌,並將它存儲在一個屬性中。我遇到的問題是,如果我調用屬性,自主線程首先執行後我什麼也沒有得到。如何在存儲之後從屬性中訪問記憶標記?
或者我可以將它存儲在別的地方嗎?
最好的辦法是做什麼?
您必須僅使用記憶標記_在回調中(即在您打印令牌的行附近)。 – paulvs
在**表達式之後放置回調行**以保存令牌 – vadian
我將回調(json as!NSDictionary)移至self.rememberToken = rememberToken之後的行中,但是當我轉到下一個函數並嘗試打印「 self.rememberToken),我什麼也沒得到 – John