美文网首页
swift 协议 可选方法

swift 协议 可选方法

作者: _我和你一样 | 来源:发表于2019-07-30 15:23 被阅读0次

在 swift 如何定义可选方法?

在 OC 中有 @optional 关键字,但在 swift 中使用 optional 关键字时,会有警告,提示我们要使用@objc,这很不 swift。而且,被标记为@objc 的协议,只能被 class 实现,不能用于结构体和枚举。

在 swift 中可选协议,可以使用扩展协议实现。具体来说分为两步

  1. 在协议中定义方法
  2. 扩展协议,在扩展协议中给出默认实现

以上两步就可以了。
而有默认实现的协议方法就是可选方法。

举个例子:

protocol phoneAndVerfiDelegate:AnyObject {
    func closeButtonDidClick()
// 扩展协议默认实现了此方法,此方法为可选协议
// 如果代理实现了此方法,会覆盖默认实现
    func changePasswordSuccess(_ userinfo:[String:String]?)
}
extension phoneAndVerfiDelegate {
    func changePasswordSuccess(_ userinfo:[String:String]?) {
        
    }
}

相关文章

网友评论

      本文标题:swift 协议 可选方法

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