斯威夫特3 FUNC(完成问题
我有下面的代码来创建分析一些JSON数据的功能。斯威夫特3 FUNC(完成问题
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>)
,但我不知道要放什么东西在说
我有,不需要我把括号任何其他视图 - 控制了类似的功能位,但具有相同的参数设置。
很混乱。
回答:
如果你想要一个可选的完成闭合,其声明为可选:
func getTrackData(completed: DownLoadComplete?) { }
,并调用函数内部的盖,可选
completed?()
然后就可以调用getTrackData
没有参数。
回答:
我实际上已经取消了这段代码,并且实现了Firebase并使用了Firebase代码,它更加整洁,更快捷。
谢谢所有回复
以上是 斯威夫特3 FUNC(完成问题 的全部内容, 来源链接: utcz.com/qa/259835.html