私が取得しています問題は、私はエラーに変数「jsonの」初期化される前に閉鎖によって捕獲
可変得続けることですスウィフト3.使用して簡単なgetJson関数を作成しようとしている「JSONを」終了前にクロージャによってキャプチャされました
私はSwiftには新しく、なぜ変数を宣言できず、後で道路に値を割り当てることができないのか非常に混乱しています。あたかも私がやっていることはすべて正しいと思われますが、うまくいかないようです。ここで
は私の関数である。
func getJson(url: String) -> AnyObject {
var json:AnyObject
let url = URL(string: url)
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
if error != nil {
print("Error");
} else {
if let content = data {
do {
// Convert JSON to array
json = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
} catch {
}
}
}
}
task.resume();
return json
}
すべてのすべてのヘルプは素晴らしいことだ、ありがとう!
あなたは 'json':' var json:AnyObject'を宣言していますが、キャプチャする前に初期化していません。それ以外は、 'dataTask'が非同期で動作するため、あなたのコードはまったく動作しません。 Btw:Swift 3では、指定されていないJSONタイプが 'Any'です。 – vadian