Objective-C にプロトコルがあります。別のクラスで、このプロトコルを実装するオブジェクトを NSMutableDictionary に追加しようとしています。
- (void) addValue:(NSString*)myString withObject:(id<MyProtocol>*)protocolThing
{
[dictionary insertValue:protocolThing inPropertyWithKey:myString];
}
これにより、「間接ポインターから 'id' への Objective-C ポインターへの暗黙的な変換は、ARC では許可されていません」というエラーが表示されます。
これどうやってするの?
これは Java から来ています。Java では、インターフェイスを宣言し、そのインターフェイスを実装するオブジェクトを通常のオブジェクトとして扱い、それらを HashMaps に追加できます。