2013-03-17 116 views
0

我在Objective-C中有一個協議。我在另一個類中試圖添加一個實現此協議的對象到NSMutableDictionary。添加協議到NSDictionary

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

這給了我一個錯誤說「間接指針的隱式轉換成Objective-C的指針‘身份證’是不允許的與ARC」

我怎樣才能做到這一點?

這是來自Java,我可以聲明一個接口,然後將實現該接口的對象視爲常規對象,然後將它們添加到HashMaps中。

回答

1

你的問題是,id<MyProtocol>已經是一個指針類型。更改您的簽名到

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

它會正常工作。

+0

作品,謝謝。無法將其標記正確。我第一次問這個網站。 – viper110110 2013-03-17 19:04:36

0

當使用id你不使用*

使用此:

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