Подтвердить что ты не робот

Swift 2 jSON Call может бросать, но не отмечен попыткой

вчера я обновился до El Capitan beta 2 и Xcode 7 - бета является обязательной. Поэтому я обновил свое приложение до Swift 2, и новая ошибка появилась в строке json. Это мой код:

let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary

и это ошибка: Call can throw , but it is not marked with 'try' and the error is not handled

4b9b3361

Ответ 1

Вам нужно обернуть его в блок do/catch, так как это предпочтительный способ сообщения об ошибках, а не использовать NSError:

do {
   let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
   // use jsonData
} catch {
    // report error
}

Ответ 2

Положите термин "попробуйте!". после знака равенства.

let jsonData:NSDictionary = try! NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary

Нет необходимости, для предложения catch или для объявления throws. Это будет хорошей идеей, если вы не сможете починить от отказа.

Для получения дополнительной информации см. https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html

Ответ 3

var UserDict = NSJSONSerialization.JSONObjectWithData(responseData, options:nil, error: &error) as? NSDictionary
println("== \(UserDict)")