Я пытаюсь получить данные из NSDictionary
в Swift, но я не могу этого сделать. Вот кодДоступ к данным из NSDictionary
let urlPath = "http://ws-report.goocity.it/Stats/json/GetReport"
let url: NSURL = NSURL(string: urlPath)!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
var result: NSDictionary
if error != nil {
// If there is an error in the web request, print it to the console
println(error.localizedDescription)
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
if err != nil {
// If there is an error parsing JSON, print it to the console
println("JSON Error \(err!.localizedDescription)")
}
else{
//var arr : NSArray = jsonResult.valueForKey("Stats") as NSArray
//var cash: String? = jsonResult.valueForKey("Cash") as? NSString
let stats = jsonResult["Stats"]! as [[String : AnyObject]]
}
})
task.resume()
Вы можете увидеть нажав JSON на urlPath.
я все еще получаю следующее сообщение об ошибке на let stats = ...
Тема 5: EXC_BAD_ACCESS (код = EXC_I386_GPFLT)
Я только что проверил несколько других сообщений здесь, на StackOverflow и в любом месте, но нет ответа хорошо для моей проблемы.
Мне нужно получить все значения полей JSON во многих переменных (например, cash, lastUpdate, totalPartners и т. Д.).
Вы на 100% уверены, что jsonResults имеет значение для ключевых «Статистика»? И вы уверены, что результатом будет массив, содержащий объекты словаря? –
Использование! рискованно - он говорит: «Это значение, безусловно, представляет собой набор словарей String: Anyobject. Я бы предложил вам удалить! и добавить a в конце. Затем вы можете проверить значение статистики для nil и предпринять соответствующие действия – Paulw11
Для такие вопросы вы всегда должны включать в себя список JSON или репрезентативный образец. –