美文网首页swift入门
关于Swift 4.0+ 回调(block && delegat

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

作者: 杯中怎可无酒 | 来源:发表于2019-06-05 14:22 被阅读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即可

    相关文章

      网友评论

        本文标题:关于Swift 4.0+ 回调(block && delegat

        本文链接:https://www.haomeiwen.com/subject/ueajxctx.html