0
JSON verisinden oluşturulan NSDictionary ile bir geri arama yürüten bir URL'den JSON verilerini okuyacak genel bir sınıf oluşturmaya çalışıyorum. Bu işlevi yapmak için statik bir sınıf oluşturdum, ancak dataTaskWithRequest'ten sonra çalışmadığı görülüyor.NSURLSession.dataTaskWithRequest çalışmıyor
[My Kodu]
import Foundation
class LoadJsonFromNetwork {
static func LoadJsonFromNetwork(url:NSURL, completion:((NSDictionary) ->())) {
print("Creating request")
let urlRequest = NSMutableURLRequest(URL: url, cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 15.0)
print("Creating session")
let session = NSURLSession.sharedSession()
print("Send request")
session.dataTaskWithRequest(urlRequest) {
(data: NSData?, response: NSURLResponse?, error: NSError?) in
print("Checking error and nil data")
if (error == nil && data != nil) {
print("Request json dictionary from nsdata")
if let result = self.NSDataToJson(data!) {
print("Dispatching to main queue")
dispatch_async(dispatch_get_main_queue()) {
print("Calling callback")
completion(result)
}
}
} else {
print(error!.description)
}
}
}
private static func NSDataToJson(data:NSData) -> NSDictionary? {
do {
print("Serializing JSON")
let json: AnyObject? = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments)
print("Cretaing NSDictionary")
let result = json as? NSDictionary
print("Returning result")
return result
} catch {
return nil
}
}
}
[Konsolu My Sonucu]
Creating request
Creating session
Send request
Saçma sapanlığım. –
Merhaba, kodum yazdırmak için çalışmaz ("Hata ve sıfır verileri denetleme") (hata == nil && data! = Nil) { print ("nsdata'dan json sözlüğünü isteyin") sonucu sonucu = kendiliğinden. NSDataToJson (veri!) { baskı ("ana sıraya Sevk") dispatch_async (dispatch_get_main_queue()) { baskı ("geri arama arama") tamamlama (sonuç) } } } else { baskı (hata! .description) } // Lütfen bunun neden olduğunu bana bildirin. Teşekkürler – AmyNguyen
@AmyNguyen 'NSURLSession' kullanıyor musunuz? –