|
|
Log In | Not a Member? |
Contact ADC |
| < 前ページ次ページ > |
プロトコルを採用したクラス、またはプロトコルを採用した別のクラスを継承したクラスは、形式プロトコルに準拠していると言われます。クラスのインスタンスは、そのクラスが準拠しているものと同じプロトコルのセットに準拠していると言います。
クラスは採用するプロトコルで宣言されたすべての必須メソッドを実装する必要があり、クラスまたはインスタンスがプロトコルに準拠するというのは、そのレパートリーの中にプロトコルで宣言されているすべてのメソッドがあるというのと同じです。
オブジェクトがプロトコルに準拠しているかどうかをチェックするには、conformsToProtocol:メッセージを送信します。
if ( ! [receiver conformsToProtocol:@protocol(MyXMLSupport)] ) { |
// オブジェクトがMyXMLSupportプロトコルに準拠していない |
// MyXMLSupportプロトコルで宣言されているメソッドを実装する |
// レシーバを期待している場合は、これはおそらくエラー |
} |
(同じ名前のクラスメソッド、conformsToProtocol:もあることに注意。)
conformsToProtocol:テストは、単独のメソッドを対象とする respondsToSelector:テストによく似ています。ただし、特定のメソッドが実装されているかどうかではなく、プロトコルが採用されているか(そして結果的に、宣言されているメソッドがすべて実装されているか)どうかをテストします。プロトコル内のすべてのメソッドをチェックするため、conformsToProtocol:のほうがrespondsToSelector:より効率が高いこともあります。
conformsToProtocol:テストは、isKindOfClass:テストにも似ています。ただし、継承階層をベースにした型ではなく、プロトコルをベースにした型をテストします。
| < 前ページ次ページ > |
Last updated: 2007-10-31
|
Get information on Apple products.
Visit the Apple Store online or at retail locations. 1-800-MY-APPLE Copyright © 2007 Apple Inc. All rights reserved. | Terms of use | Privacy Notice |