2016-04-21 35 views
2

我最初的方法。一切正常:在我的ViewController中,如何傳遞函數作爲參數並保持[weak self]?

func fetchInitialItems(num: Int){ 
    firebaseRef?.observeSingleEventOfType(.Value, withBlock: { [weak self] snapshot in 
     if self != nil { 
      //perform calculations 
     } 
    }) 
} 

我想關閉移動到它自己的另一種方法:

func fetchBlock(snapshot: FDataSnapshot!){ 
    //perform calculations 
} 

func fetchInitialItems(num: Int){ 
    firebaseRef?.observeSingleEventOfType(.Value, withBlock: withBlock: self.fetchBlock)  
} 

這是做正確的方式?我如何製作第二個解決方案[weak self]?我沒有辦法做到這一點。

回答

2

如何:

firebaseRef?.observeSingleEventOfType(.Value, withBlock: { [weak self] snapshot in 
    self?.initialFetchBlock(snapshot) 
}) 

我不知道我們是可以用封閉的外捕獲列表。

相關問題