2

Swift でクラス内部プロトコルを実装するにはどうすればよいですか?

問題はそれです

class C {
    private protocol P {
        func aFunction()
    }

    private class D: P {
        func aFunction() {
            //...
        }
    }
}

エラーが発生します

宣言はファイル スコープでのみ有効です

問題を回避するためのアイデアはありますか?

除外:クラスのみのプロトコルについては言及しませが、もちろん可能です。

4

1 に答える 1

4

Swift のアクセス制御はファイルベースです。クラス内でプロトコルを定義できるとは思いませんが、同じドキュメント内に含めることはできます。

private protocol P {
    func aFunction()
}

class C {
    private class D: P {
        private func aFunction() {
            //...
        }
    }
}

もちろん、これは class を継承するクラスCが protocol を使用できるという意味ではありませんP

私の知る限り、Swift は継承ベースのアクセス制御をサポートしていません。

于 2015-12-15T16:05:02.693 に答える