Swift代理

2018-09-30  本文已影响0人  古月思吉

一、swift代理如何使用?
1.定义协议&代理变量&调用代理方法:

//定义协议
protocol AJImgPickerControllerDelegate: NSObjectProtocol {
    //返回选中的图片
    func backChoosedImages(choosedImages: [AJImgPickerCellModel]?)
}

//定义代理属性
weak var delegate:AJImgPickerControllerDelegate?

//调用代理方法
self.delegate?.backChoosedImages(choosedImages: self?.choosedDataSource)

2.遵循代理&重写代理方法

vc.delegate = self

//MARK: - AJImgPickerControllerDelegate
extension PublishDynamicController: AJImgPickerControllerDelegate {
    
    func backChoosedImages(choosedImages: [AJImgPickerCellModel]?) {
        //...
    }
    
}

二、如果有些代理方法不是必须遵守的,怎么办?

@objc protocol SingSoundEvaluatinToolDelegate: NSObjectProtocol {
    //测评停止并返回测评结果
    func oralEvaluatingDidEnd(withResult result: [AnyHashable : Any]!, isLast: Bool)
    //测评开始
    @objc optional func oralEvaluatingDidStart()
}


//调用必须实现的代理方法
self.delegate?.oralEvaluatingDidEnd(withResult: result, isLast: isLast)
//调用可选的代理方法
self.delegate?.oralEvaluatingDidStart?()
上一篇 下一篇

猜你喜欢

热点阅读