我试图创建一个使用斯威夫特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