gpt4 book ai didi

ios - 如何在数组中然后在 TableView 中显示来自 Firebase 的用户昵称(For 循环问题)

转载 作者:行者123 更新时间:2023-11-29 11:40:41 25 4
gpt4 key购买 nike

我正在开发一个应用程序,当我试图通过在搜索栏中搜索时从 Firebase 数据库中检索他们的昵称来找到用户。一开始我想将所有用户放在一个数组中,但我做不到。

使用有效的代码进行编辑:

var userTab = [String]()

override func viewDidLoad() {
super.viewDidLoad()
ref = Database.database().reference()
ref.child("users").queryOrdered(byChild: "pseudo").observeSingleEvent(of: .value, with: { (snapshot) in
if (snapshot.value is NSNull) {
print("Aucune donnée trouvée dans la base de données")
} else {
for child in snapshot.children {
let userSnap = child as! DataSnapshot
let uid = userSnap.key
let userDict = userSnap.value as! [String: AnyObject]
let pseudo = userDict["nickname"] as! String
let total = snapshot.childrenCount
print(pseudo)
self.userTab.append(pseudo) // I change this line self.userTab = [pseudo]
self.resultsController.tableView.reloadData() // I add this line
print(self.userTab)

continue // I add this line too
}
}
})
print("userTab: \(self.userTab)") // Now the array isn't empty
}

在 For 循环中,我可以访问变量“pseudo”并在控制台中打印所有用户的昵称,但在 For 循环之外我无法将伪变量放入数组 userTab 中。我怎样才能做到这一点?我真的需要用用户的昵称填充我的 userTab,然后在 TableView 中显示所有内容。我已经尝试在 viewDidLoad() 方法之外声明“伪”变量,但同样的问题是,数组在 For 循环之后始终为空。我做错了什么?

查看我的编辑,现在所有用户的昵称都在 userTab 数组中,我可以在搜索栏中搜索它们并将结果显示在 tableView 中。

最佳答案

observeSingleEvent 是异步的,不是外循环而是在不同的时间,尝试设置断点,看它先停在哪里

您设置了 self.userTab = [pseudo] 所以现在只需重新加载 tableview

关于ios - 如何在数组中然后在 TableView 中显示来自 Firebase 的用户昵称(For 循环问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46788601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com