- swift中定义协议同oc中类似,也是在类前定义就行
@objc protocol VisitorViewDelegate:NSObjectProtocol { //点击注册按钮 optional func visitorViewDidRegisterBtnClick(visitView: VisitorView) //点击登录按钮 optional func visitorViewDidLoginBtnClick(visitView:VisitorView) } - 代理属性需要设定为weak,防止循环引用
weak var delegate:VisitorViewDelegate? - 在调用代理方法时,代理作为可选属性,已经帮我们预防代理不存在的可能
- 我们还需要借助可选属性来预防方法未实现
- 当然在确定实现的前提下可以解包
///注册handle @objc private func registerClick(){ delegate?.visitorViewDidRegisterBtnClick!(self) } ///登录handle @objc private func loginClick(){ delegate?.visitorViewDidLoginBtnClick?(self) }
Swift之协议( protocol)
最新推荐文章于 2022-07-27 18:51:00 发布
本文介绍了Swift中如何定义协议及使用代理模式,并给出了具体的代码示例。文章详细讲解了协议的定义方式、代理属性设置以及如何调用代理方法。
471

被折叠的 条评论
为什么被折叠?



