美文网首页
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