gpt4 book ai didi

ios - 函数在闭包完成之前返回 Firebase

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

我正在使用 Firebase 存储数据,当我尝试使用他们的闭包函数检索数据时,总是在闭包完成之前完成并返回。在我的 HeyUser 类中,我试图在我的 Firebase 中获取 Friend 键中的值并将其存储在类属性中。但是,当尝试实例化类的对象时,实例化对象时没有获取 Friends 键的值。我想知道您是否能够延迟函数的实例化或完成,直到闭包完成。以下是我的 HeyUser 类的代码:

class HeyUser {
var Friends: [String] = [String]()
var username = PFUser.currentUser().username
var ref = Firebase()
var fRef = Firebase()

init() {
self.ref = Firebase(url: "https://hey-chat.firebaseio.com/").childByAppendingPath("users").childByAppendingPath(PFUser.currentUser().username)
self.fRef = self.ref.childByAppendingPath("friends")
self.getFriends()
}

func getFriends() {
self.fRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
self.Friends = snapshot.value as [String]
print("TEST")
print(self.Friends.count)
})
}

最佳答案

我对 FireBase 不熟悉,并且仍在开始使用 Swift,但我可以告诉你这就是异步网络的工作方式。

您调用一个函数并传入一个 block (闭包)。该函数会立即返回,并在未来的某个日期,当网络事务完成时,框架(在本例中为 firebase)调用您的闭包。

在使用这个架构时你必须改变你的想法。您编写代码来发送请求,然后进入“待机模式”,等待请求完成。

关于ios - 函数在闭包完成之前返回 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27551976/

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