美文网首页
swift可选协议

swift可选协议

作者: 悃破 | 来源:发表于2018-07-20 11:23 被阅读21次

第一种方式(oc):

@objc protocol TestProtocol {
    @objc optional func optionalFuncTest()
    func funcTest()
}

class TestPro: NSObject {
    func test() {
    }
}

extension TestPro: TestProtocol {
    func funcTest() {   
    }
}

class TestPro2: NSObject, TestProtocol {
    func funcTest() {
    }
    func optionalFuncTest() {
    }
}

使用:

        let test1 = TestPro()
        if test1.responds(to: #selector(TestProtocol.optionalFuncTest)) {
            print("可以这样")
        } else {
            print("没有实现")
        }
        
        let test2 = TestPro2()
        if test2.responds(to: #selector(TestProtocol.optionalFuncTest)) {
            print("实现了这个方法")
        }

第二种方式(swift):
参考:http://swifter.tips/objc-protocol/

protocol TestProtocol2 {
    func optionalFuncTest()
    func funcTest()
}

//添加一个默认实现
extension TestProtocol2 {
    func optionalFuncTest() {
        print("调用了这个函数")
    }
}

class TestPro3: TestProtocol2 {
    func funcTest() {
    }
}

使用:

let test3 = TestPro3()
test3.optionalFuncTest()

相关文章

  • swift 可选协议

    前言 swift 协议 swift可选协议 协议前添加 @objc ,把你想要改成的可选协议前添加 @objc ...

  • Swift 协议代理

    Swift 实现可选协议方法

  • swift3 笔记 可选协议 和 协议扩展

    Objective-C 可选协议 -> 非必须实现 使用 @optional 关键字 Swift 可选协议 第一种...

  • swift可选协议

    第一种方式(oc): 使用: 第二种方式(swift):参考:http://swifter.tips/objc-p...

  • swift 可选协议

    方法一 @objc @objc protocol ExampleProtocol { func method1(...

  • swift可选协议

    swift是面向协议编程的。。。但是我在这实现的过程中,有一个过不去的坎---那就是,OC里面有可选协议,但是sw...

  • 可选协议和协议扩展

    // 可选协议和协议扩展 // 原生的 Swift protocol里 没有可选项,所有定义的方法都是必须实现的。...

  • swift 协议方法可选

    swift 协议方法可选 让一个类去实现这个协议 可选协议我们可以不用去实现,但是可以直接去调用testOptio...

  • 每天学一点Swift----面向对象下(八)

    十五.可选协议 1. Swift还支持在协议中定义定义可选成员要求(包括属性、方法、下标,不包括构造器)----是...

  • Swift Protocol 注意点

    Swift Protocol 想要实现可选协议,必须在协议前加@objc 协议的参数如果不是Object的子类?那...

网友评论

      本文标题:swift可选协议

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