gpt4 book ai didi

objective-c - 无法将 'class' 用作 NSDictionary 中的键

转载 作者:太空狗 更新时间:2023-10-30 03:13:56 27 4
gpt4 key购买 nike

我正在尝试使用类作为 NSDictionary 中的键.我查看了 this question 的答案我所拥有的几乎是一样的;我正在使用 setObject: forKey: .然而,XCode 提示说 Incompatible pointer types sending 'Class' to parameter of type 'id<NSCopying>' .我的电话是:

[_bugTypeToSerializerDictionary setObject: bugToStringSerializer 
forKey: [bugToStringSerializer serializedObjectType]];

bugToStringSerializerBugToStringSerializer 的实例其具体实现实现serializedObjectType .具体实现的示例如下所示:

- (Class) serializedObjectType {
return [InfectableBug class];
}

我在这里做错了什么?

最佳答案

(似乎类确实符合 NSCopying ,但它们的类型不是 id <NSCopying> 。)编辑: 类不符合协议(protocol)。当然最重要的是类响应 copycopyWithZone:消息(这就是为什么您可以安全地忽略这种情况下的警告)。他们的类型仍然不是id <NSCopying> .) 这就是编译器提示的原因。

如果您真的不想要那个丑陋的警告,只需执行显式类型转换:

[dictionary setObject:object forKey:(id <NSCopying>)someClass];

关于objective-c - 无法将 'class' 用作 NSDictionary 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12525324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com