【问题标题】:Incompatible pointer types sending 'Class' to parameter of type 'id<NSCopying>'不兼容的指针类型将“类”发送到“id<NSCopying>”类型的参数
【发布时间】:2012-10-19 23:55:02
【问题描述】:

我已经更新了 xcode,现在我收到了错误消息 不兼容的指针类型将“Class”发送到“id”类型的参数


- (void)mapObjectClass:(Class)objectClass toCellClass:(Class)cellClass {
  [self.objectToCellMap setObject:cellClass forKey:objectClass];
}

如果有人能阐明我遇到的这个问题以及我如何解决它,我将不胜感激。

【问题讨论】:

  • 据我了解,id相当于一个void *。类不是指针,因此与 id 不兼容。如果我错了,请随时纠正我。 :)
  • 嗨,Simon,感谢您的及时回复,那么您建议我将其更改为什么?
  • @SimonGermain 不太正确。 id 是泛型类型,表示任何类的 Objective-C 对象。类对象确实是对象,可以发送到需要 id 参数的方法。问题是 rmaddy 在他的回答中描述的。
  • 感谢您的更正,我不是 100% 确定 :)
  • 谢谢 Simon 和 Andrew,将 id 更改为 Class 解决了这个问题 :)

标签: ios xcode4.5 nscopying


【解决方案1】:

NSDictionary 的键必须是遵守 NSCopying 协议的对象。 不符合条件。

第一个问题是为什么你的方法参数是 Class 类型而不是更典型的类型,例如特定的类类型(对象指针)或 id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多