プロジェクトをSwift 3に変換しようとしていて、このエラーが発生し続けています。私はこれ以外のすべてのエラーを修正しました。私はいくつかの人が問題を抱えているのを見ましたが、私はJSONを初めて使っているので、理解できませんでした。どんな助けでも大歓迎です。ここでタイプ 'Any'にSwift 3の下付きメンバがありません。Xcode 8
は私のコードです:
class func fetchPriceForSymbol(_ symbol: String, completion:@escaping (_ stock: StockPrice) ->()) {
DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
let url = URL(string: "http://finance.yahoo.com/webservice/v1/symbols/\(symbol)/quote?format=json")
let data = try? Data(contentsOf: url!)
do {
//let object = try JSONSerialization.jsonObject(with: data!, options: .allowFragments)
let object = try! JSONSerialization.jsonObject(with: data!)
if let dictionary = object as? [String: AnyObject] {
let title = object["list"] as! NSDictionary
let title2 = title["resources"] as AnyObject!
let title3 = title2[0] as AnyObject!
let title4 = title3["resource"] as AnyObject!
let fields = title4["fields"] as AnyObject!
let stockPrice = StockPrice (
price: fields["price"] as AnyObject! as! String
)
DispatchQueue.main.async {
completion(stock: stockPrice)
}
}
} catch {
// Handle Error
}
}
}
JSONデータツリーを追加できますか? – eshirima
指定されていない( 'Any')オプションバインディングの後に' object'を使用しています。 'object'を' dictionary'に置き換えます。また、 'NSDictionary'ではなく' [String:Any] 'を使います。オブジェクトを 'AnyObject'より意味のあるものにキャストします。 – vadian
辞書を指定するにはlet object = try! JSONSerialization.jsonObject(with:data!)? NSDictionary – AdamM