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ますか?

注: publicfromを削除MyClassすると上記のコンパイル エラーが解消されることはわかっていますが、MyClassそれを使用する Objective-C コードから見えるようにする必要があります。

4

0 に答える 0