MG的Swift空间

Swift 将协议(protocol)中的部分方法设计成可选(o

2021-10-26  本文已影响0人  sampson666888

@optional@required 是 Objective-C 中特有的关键字。
Swift中,默认所有方法在协议中都是必须实现的。而且,协议里方法不可以直接定义 optional。先给出两种解决方案:

@objc protocol SomeProtocol {
  func requiredFunc()
  @objc optional func optionalFunc()
}
protocol SomeProtocol {
  func requiredFunc()
  func optionalFunc()
}
extension SomeProtocol {
  func optionalFunc() {
    print(“Dumb Implementation”)
  }
}
Class SomeClass: SomeProtocol {
  func requiredFunc() {
    print(“Only need to implement the required”)
  }
}
上一篇 下一篇

猜你喜欢

热点阅读