美文网首页
【Swift】协议式编程

【Swift】协议式编程

作者: 文子飞_ | 来源:发表于2020-12-19 21:32 被阅读0次

Swift协议式编程

/**
 *  定义协议
 *  @objc 并且继承 NSObjectProtocol OC就可以调用了
 */
protocol AppProtocol {
    
    var appName: String { get set }
    
    // 必须协议方法
    func requireProtocolMethod1()
    func requireProtocolMethod2()
    
    // 可选协议方法
    //@objc optional func optionalProtocolMethod1()
    //@objc optional func optionalProtocolMethod12()
    
}
 
// MARK: - <extension AppProtocol 实现协议方法>
extension AppProtocol {
    
    func requireProtocolMethod1() {
        debugPrint("\(self)--" + "requireProtocolMethod1")
    }
    func requireProtocolMethod2() {
        debugPrint("\(self)--" + "requireProtocolMethod2")
    }
    
    func optionalProtocolMethod1() {
        debugPrint("\(self)--" + "optionalProtocolMethod1")
    }
    func optionalProtocolMethod2() {
        debugPrint("\(self)--" + "optionalProtocolMethod2")
    }
    
    
}


extension UIViewController: AppProtocol {
    
    var appName: String {
        get {
            return "AppProtocol"
        }
        set {
            
        }
    }
    
    // 调用协议方法
    func useAppProtocol() {
        requireProtocolMethod1()
        requireProtocolMethod2()
        optionalProtocolMethod1()
        optionalProtocolMethod2()
    }
    
}

Swift协议暴露给OC调用

/// @objc 并且继承 NSObjectProtocol OC就可以调用了
@objc protocol HomeProtocol: NSObjectProtocol {
    @objc func homeViewWillAppear()
    @objc optional func homeViewDidAppear()
}

extension HomeProtocol {
    func homeViewWillAppear() {
        debugPrint("homeViewWillAppear")
    }
    func homeViewDidAppear() {
        debugPrint("homeViewDidAppear")
    }
}

相关文章

网友评论

      本文标题:【Swift】协议式编程

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