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
Ответы
Ответ 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)")