【发布时间】:2017-03-23 00:33:04
【问题描述】:
我需要这个数组
self.values.append(value)
为了将上面数组中的值附加到另一个数组^。我几乎需要将一个数组传递给另一个带有附加值的函数。
func updateChartValues() -> (LineChartDataSet) {
self.recieveChartValues()
var entries: [ChartDataEntry] = Array()
for i in 0 ..< values.count {
entries.append(ChartDataEntry(x: Double(i), y: Double(values[i]), data: UIImage(named: "icon", in: Bundle(for: self.classForCoder), compatibleWith: nil)))
如何获取这些从 recieveChartValues() 附加到 updateChartValues 的值?主要的混淆是因为它们是从 Firebase 附加的。
func recieveChartValues() {
//Firebase Initialization
var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()
ref.child("general_room_index").observeSingleEvent(of: .value, with: {(snap) in
print("error3")
if let snaps = snap.value as? [Any]{
for val in snaps {
if let value = val as? Int{
self.values.append(value)
//print(self.values)
}
}
}
})
}//retrive values func
func updateChartValues() -> (LineChartDataSet) {
self.recieveChartValues()
var entries: [ChartDataEntry] = Array()
for i in 0 ..< values.count {
entries.append(ChartDataEntry(x: Double(i), y: Double(values[i]), data: UIImage(named: "icon", in: Bundle(for: self.classForCoder), compatibleWith: nil)))
print("Enetrie ", entries)
}
self.dataSet = LineChartDataSet(values: entries, label: "Bullish vs. Bearish")
self.dataSet.mode = LineChartDataSet.Mode.cubicBezier
return dataSet
}
【问题讨论】:
-
由于 Firebase 任务将异步完成,您需要将闭包传递给
recieveChartValues并从 Firebase 完成闭包调用该闭包 -
你能告诉我一个例子如何做到这一点
-
我有点理解完成和关闭我只是不知道如何用这两个函数实现它们我需要一个例子来完全理解
-
有人吗?谁能帮帮我?
标签: ios swift firebase swift3 firebase-realtime-database