swift 类回调方法/回调函数

来源:互联网 发布:梁治平知乎 编辑:程序博客网 时间:2024/06/13 18:11
// A类代码class A{    func  huidiao(){         let tag:String = "XunDianGuanLiControlle"        // 数据处理的B类型        let UIPickerViewPL = B()        // 设置数据,传tag(tag是自定义的,可传可不传),getValueClosure 这个方法是必须的,这个方法创建在本类        UIPickerViewPL.UIPivkerInit(tag: tag, closuer:getValueClosure)        // 设置B类背景透明度        UIPickerViewPL.view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)        // 显示B类,自下而上显示        self.present(UIPickerViewPL, animated: true, completion: nil)    }// B类中回调的方法,参数自定义func getValueClosure(tag: String,result:[Int:Int]) {        for (k,v) in result {            print("\(tag)|\(mPinPaiPickerData[k]![v]?.name)")        }     }}// B类代码// 这句代码没理解什么意思,应该是声明类型,我是写在class上面的typealias sendValueClosure = (_ tag: String,_ result:[Int:Int])->Voidclass B{    // 请求tag    var mStringTag:String!    // 请求闭包函数    var mQingQiuBiBao:sendValueClosure?    // TODO:初始化赋值,在A类中调用此方法赋值    public func UIPivkerInit(tag:String,closuer:sendValueClosure?){        self.mStringTag = tag        self.mQingQiuBiBao = closuer    }    func BhuiDiao(){        if(mQingQiuBiBao != nil){            // 这里会回调A类里面的getValueClosure方法,这里的参数就是getValueClosure方法的参数            mQingQiuBiBao!(self.mStringTag,[1:1])        }        // 回跳(这个是present的返回,而且有动画,自上而下隐藏)        self.dismiss(animated: true, completion: nil)    }}
原创粉丝点击