我对Swift和Xcode一般都比较新,我发现很难解决这个问题.
我正在开发一个利用Parse.com后端服务器的应用程序.为了不阻塞主线程,每当应用程序从服务器下载任何内容时,它都是异步完成在不同的线程上完成的.然而,其余代码继续在主线程上执行,并且当它应该从服务器获得的数据尚未下载时它崩溃.我想知道如何在异步函数完成后调用函数来运行,并且必须对单独文件中的函数进行此操作.
我读到闭包可能有助于此,但我发现语法非常困难,并且将非常感谢解释.但任何方式都会非常有帮助.
谢谢
我刚刚开始学习 IOS 开发,来自后端世界。我希望将 userID 传递给此函数并返回名称,所有数据都来自 Firebase。我当前尝试将名称值从闭包中打破的尝试不起作用,返回空字符串。我如何构建这段代码才能返回“name”变量。
func getNameOfUser(uid: String) -> String {
var name: String = ""
FIRAuth.auth()?.signInAnonymouslyWithCompletion() { (user, error) in
self.ref = FIRDatabase.database().reference()
self.ref!.child("users").child(uid).child("name").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
name = snapshot.value! as! String
}) { (error) in
print(error.localizedDescription)
}
}
return name
}
Run Code Online (Sandbox Code Playgroud)