2013-03-17 3 views
0

Objective-C에 프로토콜이 있습니다. 다른 클래스에서이 프로토콜을 구현하는 객체를 NSMutableDictionary에 추가하려고합니다.NSDictionary에 프로토콜 추가

- (void) addValue:(NSString*)myString withObject:(id<MyProtocol>*)protocolThing 
{ 
    [dictionary insertValue:protocolThing inPropertyWithKey:myString]; 
} 

나는이 어떻게 할 수있는

"ARC으로 허용되지 않는 'ID'에 목표 - C 포인터에 간접 포인터의 암시 적 변환"나에게 오류가 말을 주는가?

이것은 Java에서 나왔습니다. Java에서 인터페이스를 선언하고 해당 인터페이스를 구현하는 객체를 일반 객체로 처리 한 다음이를 HashMaps에 추가 할 수 있습니다.

답변

1

문제는 id<MyProtocol>이 이미 포인터 유형입니다. 서명을

- (void) addValue:(NSString*)myString withObject:(id<MyProtocol>)protocolThing 

으로 변경하십시오. 그러면 정상적으로 작동합니다.

+0

작품. 아직 정확하게 표시 할 수 없습니다. 이 사이트에 처음으로 묻습니다. – viper110110

0

당신이 *

사용이 사용하지 않는 id를 사용하여 :, 덕분에

- (void) addValue:(NSString*)myString withObject:(id<MyProtocol>)protocolThing 
관련 문제