web-dev-qa-db-ja.com

Swift 2 jSONコールはスローできますが、tryとマークされていません

昨日、El Capitanベータ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

18
markutus

これは、NSErrorを使用するよりも、エラーを報告するための推奨される方法であるため、do/catchブロックでラップする必要があります。

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

「トライ!」等号の後。

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

2
Jerry Frost
var UserDict = NSJSONSerialization.JSONObjectWithData(responseData, options:nil, error: &error) as? NSDictionary
println("== \(UserDict)")
0
Kirit Modi