Objective-Cのプロトコルはどう実装されているのか。 #include <stdio.h> #include <objc/runtime.h> #include <objc/Protocol.h> @protocol SomeProtocol - someMethod; @end int main() { Protocol *p = @protocol(SomeProtocol); printf("SomeProtocol: %p %s\n", p, protocol_getName(p)); } @protocol(protocol_name)で、プロトコルの実体(Protocol *)を取得することができる。このコードをコンパイル、実行すると以下のようになる。 $ gcc test1.m -lobjc $ ./a.out SomeProtocol: 0x300c SomePro