美文网首页
可选接口和接口扩展

可选接口和接口扩展

作者: wangwenju | 来源:发表于2017-07-07 23:09 被阅读0次

    原生的 Swift protocol 里没有可选项,所有定义的方法都是必须实现的。如果我们想要像 Objective-C 里那样定义可选的接口方法,Swift 2.0 以后可以使用 protocol extension。我们可以在声明一个 protocol 之后再用 extension 的方式给出部分方法默认的实现。这样这些方法在实际的类中就是可选实现的了。

    protocol OptionalProtocol {
        func optionalMethod()        // 可选
        func necessaryMethod()       // 必须
        func anotherOptionalMethod() // 可选
    }
    
    extension OptionalProtocol {
        func optionalMethod() {
            print("Implemented in extension")
        }
        
        func anotherOptionalMethod() {
            print("Implemented in extension")
        }
    }
    
    class MyClass: OptionalProtocol {
        func necessaryMethod() {
            print("Implemented in Class3")
        }
        
        func optionalMethod() {
            print("Implemented in Class3")
        }
    }
    
    let obj = MyClass()
    obj.necessaryMethod() // Implemented in Class3
    obj.optionalMethod()  // Implemented in Class3
    obj.anotherOptionalMethod() // Implemented in extension
    

    相关文章

      网友评论

          本文标题:可选接口和接口扩展

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