1. ホーム
  2. swift

[解決済み] あるプロトコルを特定のクラスにのみ適用することを要求する方法

2023-01-20 04:13:51

質問

このプロトコルが欲しいのですが。

protocol AddsMoreCommands {
     /* ... */
}

を継承するクラスのみが採用する。 UIViewController . このページ と書くことで、(構造体ではなく)クラスでのみ採用されることを指定できることを教えてくれました。

protocol AddsMoreCommands: class {
}

が、特定のクラスにのみ採用されることを要求する方法が見当たりません。 そのページは後で を追加することについて述べています。 where 節をプロトコル拡張に追加して適合性をチェックすることについて述べていますが、私はそれをどのように適応させるか見ることができません。

extension AddsMoreCommands where /* what */ {
}

このような方法はあるのでしょうか? ありがとうございます。

どのように解決するのですか?

protocol AddsMoreCommands: class {
    // Code
}

extension AddsMoreCommands where Self: UIViewController {
    // Code
}