关于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即可