protocolについて
所謂、interface。
但し、必ず実装しないといけないメソッドと任意実装を指定可能。
#import <Foundation/Foundation.h> @protocol MyProtocol @required //必須実装のプロトタイプ @optional //任意実装のプロトタイプ @end
インスタンスが指定プロトコルのインスタンスであるかはconformsToProtocolで確認可能
if( [myObj conformsToProtocol:@protocol(myProtocol)]){ //myObjはmyProtocolのインターフェースを持っている }
インスタンスがオプションメソッドを実装しているかは
if( [myObj respondsToSelector:@selector(optionalMethod)] ){ //myObjはoptionalMethodを実装している }
として確認可能。