【发布时间】:2017-07-18 02:24:05
【问题描述】:
我正在尝试附加到 Firebase 闭包内的数组,
我在闭包之外声明了数组var CanJoinArray = [String]() 但是当我尝试附加到闭包内的数组时:self.CanJoinArray.append("hello") 并在闭包之外打印它,print (CanJoinArray) 它不会打印。但是,当我在(内部)闭包内打印数组时,它可以追加和打印。我该如何解决这个问题?谢谢!
ref.observeSingleEvent(of: .value, with: { (FIRDataSnap) in
for child in FIRDataSnap.children.allObjects {
let key = (child as AnyObject).key as String
self.myArray.append(key)
}
for (_, element) in self.myArray.enumerated() {
self.ref.child(element).child("Players").observeSingleEvent(of: .value, with: { (Snap) in
if Snap.childrenCount < 2 {
self.CanJoinArray.append("hello")
}
else {
print("Can't join lobby\(element)... Full!")
}
print(CanJoinArray) //this does work
})
}
print (CanJoinArray) //this doesn't work
})
}
数据库结构:
{
"Lobbies" : {
"RANDOMUUID" : {
"LobbyName" : {
"LobbyName" : ""
},
"Players" : {
"user1" : "USERUID#"
}
}
},
"Users" : {
"USERUID#" : {
"DisplayName" : "user1"
}
}
}
【问题讨论】:
-
你的意思是'if'语句吗?不确定“in”语句是什么。
-
是的对不起...我的意思是一个 if 语句
-
请发布一个简短的代码示例来显示问题
-
@simonWasHere 刚刚做到了。
-
myArray 和 CanJoinArray 有什么联系?
标签: ios swift firebase firebase-realtime-database