如何从iOS / swift中的闭包函数返回值?

时间:2016-07-02 02:36:44

标签: ios swift asynchronous firebase closures

我刚开始学习IOS开发,来自后端世界。我希望将userID传递给此函数并返回名称,所有数据都来自Firebase。我当前尝试从闭包中打破名称值不起作用,返回空字符串。如何构建此代码以获取该名称' name'变量返回。

src

1 个答案:

答案 0 :(得分:2)

这不起作用。 signInAnonymouslyWithCompletion()正在后台工作。

  

异步创建并成为匿名用户。

这意味着当执行完成块时getNameOfUser()及其局部变量已经消失。

func getNameOfUser(uid: String) -> String 
{
  var name: String = ""
  FIRAuth.auth()?.signInAnonymouslyWithCompletion() 
  { (user, error) in
  // Executed somewhere in the future
  }
// Executed immeditaly.
return name
}

您应该将完成块作为参数传递给函数,并在完成块内执行,而不是返回结果。