title: using variables outside of completion block
body: <p>Im currently retrieving data from firebase the data is put inside an <code>NSObject</code> and then a completion block. The item inside of the completion block is store as a variable <code>userBinfos</code>. Variable <code>userBinfos</code> only work inside of the completion block i want to use this outside of the completion </p>
  
  <pre><code>var userBinfos = userObject()
      override func viewDidLoad() {
          super.viewDidLoad()
  
          userBinfo { (user) in
          self.userBinfos = user
  
          }  
  //I want to use to variable here but it does not work 
          print(self.userBinfos.email)
  
      }
  
  
      func userBinfo(completion: (userObject) -&gt; ()) {
  
          let dbFir = FIRDatabase.database().reference()
  
          let firRef = dbFir.child("frontEnd/users/\(userId)")
  
          firRef.observeEventType(.Value, withBlock: { snapshot in
  
              let userDict = snapshot.value as! [String: AnyObject]
              self.name.text = userDict["firstname"] as? String
              self.userBio.text = userDict["userBio"] as! String
  
              var user = userObject()
  
              user.firstName = userDict["firstname"]
              user.lastName = userDict["lastname"]
              user.email = userDict["email"]
              user.profileImageUrl = userDict["profileImageUrl"]
              user.userBio = userDict["firstname"]
              user.userId = userDict["firstname"]
  
                     dispatch_async(dispatch_get_main_queue(), {
              completion(user)
  
              })
  
          }) { (error) in
              print(error)
          }
  
      }
  </code></pre>