我試圖創建一個使用斯威夫特3.一個簡單的getJSON功能我得到的問題是,我不斷收到錯誤變量「JSON」正在初始化之前關閉捕捉
變量「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'異步工作。順便說一句:在Swift 3中,未指定的JSON類型是「Any」。 – vadian