swift入门

关于Swift 4.0+ 回调(block && delegat

2019-06-05  本文已影响0人  杯中怎可无酒
1、Block 闭包的写法

定义:

typealias callBackBlock = (_ str: String, _ index: Int) -> Void  

声明:

var callBack : callBackBlock?

回调:

if (callBack != nil) {
   callBack!("123", 111)
}

外部实现:

vc.callBack = {str , index in
            print(str, index)
        }

其他写法:

let block : ()->() = {}
    block = {[weak self] in
  //code

}
2、代理模式写法

创建protocol

protocol pickerDelegate {
    // MARK: - 选择index && string 回调
    func didSelectBind(_ index: Int, str: String)
}

声明:

var delegate : pickerDelegate?

回调:

self.delegate?.didSelectBind(pickerView.selectedRow(inComponent: 0), str: dataArr[pickerView.selectedRow(inComponent: 0)])

**外部使用写法直接实现协议 复制协议中的func即可

上一篇下一篇

猜你喜欢

热点阅读