【发布时间】:2020-05-14 11:22:56
【问题描述】:
我卡住了。我试图找到解决问题的好方法,但我不能......所以我想问你,我怎样才能将闭包的价值作为 func 结果?我想从不同 id child 的 firebase 获取数据。所以我的 func 正在工作-“print(target!)”打印好东西,但我怎样才能把它作为 func 结果字符串?
func readID(id: Int) -> String {
var value = ""
let ref1 = ref.child("\(av.currentYear())/\(av.currentMonth())/\(av.currentDay())/Shift\(av.shift)/\(id)").child("main").child("id")
ref1.observeSingleEvent(of: .value) { (snapshot1) in
if snapshot1.exists(){
let target = snapshot1.value as? String
print(target!)
value = target!
}
}
return value
}
我的 var value 想法行不通,我不想在函数之外创建 10 个不同的变量。我想尝试转义闭包,但我还不明白...
【问题讨论】:
-
“我想尝试转义闭包,但我还不明白”然后理解它。您不能返回在异步代码中设置的值,因为这需要时间来向后运行。
return value行在value = target!行之前运行。这只是事实。
标签: ios swift firebase function closures