title: Returning Data From Function (Swift)
body: <p>I am trying to return result and be able to access result array from this function. Everything is working in the function, however I cannot return anything or access results or any variable created inside the function from outside the closure. I want to access result.valueForKey("id") from outside the closure. How can I do that?</p>
  
  <pre><code>class ViewController: UIViewController, FBSDKLoginButtonDelegate {
  
  var facebookid: NSString = ""
  var username: NSString = ""
  var userEmail:NSString = ""
  
  override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view, typically from a nib.
  
      if (FBSDKAccessToken.currentAccessToken() == nil)
      {
          let loginView : FBSDKLoginButton = FBSDKLoginButton()
          self.view.addSubview(loginView)
          loginView.center = self.view.center
          loginView.readPermissions = ["public_profile"]
          loginView.delegate = self
  
      } else {
  
          returnUserData()
  
          println(facebookid)  // This doesn't work
  
      }
  }
  
  
  
      func returnUserData()
  {
  
      let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
      graphRequest.startWithCompletionHandler({ (connection, result, error) -&gt; Void in
  
          if ((error) != nil)
          {
              // Process error
              println("Error: \(error)")
          }
          else
          {
  
              self.facebookid = result.valueForKey("id") as NSString!
              self.username = result.valueForKey("name") as NSString!
              self.userEmail = result.valueForKey("email") as NSString!
              println(result) // This works
  
  
          }
      })
  }
  </code></pre>
  
  <p>Edit: I did change the code according to the 2 answers below but still I still can't get any data return on the viewDidLoad closure. 
  * println(facebookid) doesn't return anything in the ViewDidLoad whereas it does inside the closure in function.</p>