title: In my ViewController, how can I pass a function as a parameter and keep [weak self]?
body: <p>My initial method.  Everything works well.:</p>
  
  <pre><code>func fetchInitialItems(num: Int){
      firebaseRef?.observeSingleEventOfType(.Value, withBlock: { [weak self] snapshot in
          if self != nil {
              //perform calculations
          }
      })
  }
  </code></pre>
  
  <p>I want to move the closure to another method of its own:</p>
  
  <pre><code>func fetchBlock(snapshot: FDataSnapshot!){ 
      //perform calculations
  }
  
  func fetchInitialItems(num: Int){
      firebaseRef?.observeSingleEventOfType(.Value, withBlock: withBlock: self.fetchBlock)    
  }
  </code></pre>
  
  <p>Is this the right way to do it? How do I make the second solution <code>[weak self]</code> ? I don't see a way to do that.</p>