プロトコルの継承リストに class
キーワードを追加して、プロトコルの採用を(構造体や列挙型でない)クラス型に限定することができます。class
キーワードは、常にプロトコルの継承リストの最初で、どの継承プロトコルよりも前にする必要があります。
protocol SomeClassOnlyProtocol: class, SomeInheritedProtocol {
// クラス限定のプロトコル定義
}
この例の SomeClassOnlyProtocol
は、クラス型でのみ採用することができます。構造体や列挙型の定義で SomeClassOnlyProtocol
を採用しようとすると、コンパイル時エラーになります。
NOTE
準拠する型が値のセマンティックではなく参照のセマンティックをであるということを、プロトコルの要件により定義された振る舞いが想定または要求するときに、クラス限定のプロトコルを使用します。参照と値のセマンティックについての詳細は、Structures and Enumerations Are Value Types および Classes Are Reference Types を確認してください。
Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.