通常、開発者がプロトコルを実装するクラスのインスタンスへのポインターを作成するとき、彼女はこれを行います。
id<ProtocolName> myInstance = [[SomeClass alloc] init];
インスタンスのクラス タイプをより具体的に指定して、このように使用してもよろしいですか?
SomeClass<ProtocolName> *myInstance = [[SomeClass alloc] init];
または方法で:
- (SomeClass<ProtocolName> *)someMethodWithArg:(int)arg;
実装あり (SomeSuperClass が SomeClass のスーパークラスであると仮定):
- (SomeClass<ProtocolName> *)someMethodWithArg:(int)arg
{
SomeClass<ProtocolName> *instance = [[SomeSuperClass alloc] init];
return instance;
}