2016-06-30 13 views
2

私が試しているJSONファイルをSwift 3環境に読み込むためのこのコードがあります。ここでは、次のとおりです。Swift to Swift 3コード変換:JSONファイルを読む

do { 
    let dictionary = try NSJSONSerialization.JSONObjectWithData(dataOK, options: NSJSONReadingOptions()) as AnyObject! 
     dictionaryOK = (dictionary as! NSDictionary as? Dictionary <String, AnyObject>)! 
    } 
catch { 
    print("Level file '\(filename)' is not valid JSON: \(error)") 
    return nil 
} 

Xcodeのは、この生成(一部のオブジェクトやクラスの名前が変更されているとして)、いくつかのエラーを修正するための提案を与える:

do { 
    //Problem here: parameters don't match overrides 
    let dictionary = try JSONSerialization.jsonObject(dataOK as Data, options: JSONSerialization.ReadingOptions()) as AnyObject! 
    dictionaryOK = (dictionary as! NSDictionary as? Dictionary <String, AnyObject>)! 
} 
catch { 
    print("Level file '\(filename)' is not valid JSON: \(error)") 
    return nil 
} 

(jsonObjectsオーバーライドのいずれにも一致しませんそれは言う)。私は、jsonObjectsのパラメータは次のように書かれていることを確認しました。

私は間違っていますか?

答えて

9

あなたのSwift 2コードはかなり冗長です。

これを試してみてください:

do { 
    if let dictionaryOK = try JSONSerialization.jsonObject(with: dataOK, options: []) as? [String: AnyObject] { 
     // parse JSON 
    } 
} catch { 
    print(error) 
}