Temelde, bir zaman uyumsuz ağ işlevi vardır:Swift'deki bir bloktan bilgi nasıl saklayabilirim?
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()
}
Ve tek yapabileceğim (json) verileri geri alıyorum baskı olduğunu. Gerçekten hatırlamıyorum ve bir mülkte saklıyorum. Sorun şu ki, eğer mülkiyeti çağırırsam, ana iş parçacığı ilk önce başladığından beri hiçbir şeyim yok. Buradaki depolandıktan sonra hatırlama kartına nasıl erişebilirim?
Veya başka bir yerde saklayabilir miyim?
Bunu yapmanın en iyi yolu nedir? Blocks
tercih olacaktır bloklarını kullanma
Temsilci Kullanarak ve Protokoller
:
Hatırlatıcı simgesini yalnızca _inside_ callback (yani tokenı yazdırdığınız satırın yanında) kullanmanız gerekir. – paulvs
Geri arama satırını ** ifadeyi kaydetmek için ** ifadesini kaydet – vadian
Geri çağırma işlemini (json as! NSDictionary) self.rememberToken = rememberToken öğesinden sonra satırına taşıdım, ancak sonraki işleve gittiğimde yazdırmayı deneyin. self.rememberToken), hala hiçbir şey almıyorum – John