在我的ViewController中,如何将函数作为参数传递并保持[弱自我]?

时间:2016-04-21 07:16:42

标签: ios swift

我的初步方法。一切运作良好。:

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]?我没有办法做到这一点。

1 个答案:

答案 0 :(得分:2)

这个怎么样:

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

我不确定我们是否可以在关闭之外使用捕获列表。