1

假设我在 Swift 中定义了一个协议:

public protocol MyProtocol {
  func myMethod() -> String
}

然后我在同一个源文件中定义一个类:

public class MyClass: NSObject {
  var myVariable = ""
  func myOtherMethod()
}

然后,我添加一个扩展名来MyClass指定MyProtocol同一个源文件中的一致性:

extension MyClass: MyProtocol {
  func myMethod() -> String {
    return "abc"
  }
}

当我尝试在 Xcode 7.2 中编译上述代码时,我收到一个编译器错误,告诉我需要为每个扩展的方法添加一个公共装饰器:

extension MyClass: MyProtocol {
  public func myMethod() -> String {
    return "abc"
  }
}

有没有办法避免像上面那样用 注释类扩展中的每个方法public

注意:我知道删除publicfromMyClass会使上述编译错误消失,但我需要MyClass对使用它的 Objective-C 代码可见。

4

0 回答 0