gpt4 book ai didi

ios - 在闭包 Swift3 之外访问变量

转载 作者:行者123 更新时间:2023-11-28 18:50:10 27 4
gpt4 key购买 nike

我已经在 ViewController 类的开头声明了 requestPostArray。我正在尝试从数据库“Request Posts”填充 requestPostArray,然后从 requestPostArray 填充 tableView。但是,当我打印它的尺寸时,它显示为 0。任何帮助将不胜感激。

此外,下面的整个 else 语句都在另一个闭包中。

else {

ref.child("Request Posts").observe(.value, with: { (snapshot) in
let count = Int(snapshot.childrenCount)

// Request Post database is empty
if count == 0 {
cell.nameLabel.text = "No requests so far."
cell.userNameLabel.isHidden = true
cell.numberOfRequestsLabel.isHidden = true
}

// Request Post data is populated
else {

var requestPostArray: [RequestPost]? = []
self.ref.child("Request Posts").observe(.value, with: { (snapshot) in
if let result = snapshot.children.allObjects as? [FIRDataSnapshot] {

for child in result {
let post = RequestPost(snapshot: child)
requestPostArray?.append(post)
}
}

else {
print("No Result")
}
})


print("RequestPostArray size = \(requestPostArray?.count ?? 90)")

cell.nameLabel.text = self.requestPostArray?[indexPath.row].name
cell.userNameLabel.text = self.requestPostArray?[indexPath.row].name
cell.numberOfRequestsLabel.text = self.requestPostArray?[indexPath.row].name
}
})
}

最佳答案

observe block 是异步的。在 requestPostArray?.append(post) 行修改之前,您正在阅读 requestPostArray

如果没有更多的上下文,很难知道你想如何在这个 cell 对象上填充值,但是如果你需要“请求帖子”,那么你必须等到你能够获得它们.

关于ios - 在闭包 Swift3 之外访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43532119/

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