[英]Swift 3 func(completed issue
我有以下代码来创建一个解析一些json数据的函数。
func getTrackData(completed: @escaping DownLoadComplete) {
let getDataURL = URL(string: "https://tfmx-3ba7c.firebaseio.com/")!
Alamofire.request(getDataURL).responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary<String, Any> {
if let tr = dict["tracks"] as? Dictionary<String, Any> {
if let name = tr["name"] as? String {
if let trackId = tr["trackId"] as? Int {
if let postcode = tr["postcode"] as? String {
if let trackType = tr["trackType"] as? String {
if let locId = tr["locId"] as? String {
if let lon = tr["lon"] as? Double {
if let lat = tr["lat"] as? Double {
if let phoneNumber = tr["phoneNumber"] as? String {
if let email = tr["email"] as? String {
for obj in tr {
let names = Tracks(name: name, trackId: trackId, postcode: postcode, trackType: trackType, locId: locId, lon: lon, lat: lat, phoneNumber: phoneNumber, email: email)
self.track.append(names)
}
self.tableView.reloadData()
}
}
}
}
}
}
}
}
}
}
}
completed()
}
}
当我用
getTrackData()
我收到以下错误
调用中参数“完成”的缺少参数
它建议我添加
self.getTrackData(completed: <DownLoadComplete>)
但我不确定该说些什么
我在另一个viewcontroller上有一个类似的函数,不需要我将任何内容放在方括号中,但是设置了相同的参数。
很迷茫。
如果要可选的完成闭包,请将其声明为可选的:
func getTrackData(completed: DownLoadComplete?) {
}
并将函数内部的闭包作为可选函数调用
completed?()
然后,您可以不带参数调用getTrackData
。
实际上,我现在已经废弃了此代码,并实现了Firebase并使用了Firebase代码,这更加整齐,快捷。
感谢您的所有回复
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.