【问题标题】:add protocol to NSDictionary将协议添加到 NSDictionary
【发布时间】:2013-03-17 18:52:50
【问题描述】:

我在 Objective-C 中有一个协议。我正在另一个类中尝试将实现此协议的对象添加到 NSMutableDictionary。

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

这给了我一个错误,提示“ARC 不允许将间接指针隐式转换为指向 'id' 的 Objective-C 指针”

我该怎么做?

这来自 Java,我可以在其中声明一个接口,然后将实现该接口的对象视为常规对象,然后将它们添加到 HashMaps。

【问题讨论】:

    标签: objective-c nsmutabledictionary


    【解决方案1】:

    您的问题是id&lt;MyProtocol&gt; 已经是指针类型。将您的签名更改为

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

    它会正常工作的。

    【讨论】:

    • 工作,谢谢。还不能将其标记为正确。这是我第一次在这个网站上提问。
    【解决方案2】:

    使用id 时不要使用 *

    使用这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多