gpt4 book ai didi

objective-c - 调用 isKindOfClass 会在 Objective-C 中引发错误

转载 作者:行者123 更新时间:2023-12-05 01:21:35 27 4
gpt4 key购买 nike

我想实现 subscripting在我的自定义类中,因此实现了以下方法:

- (id)objectForKeyedSubscript:(id<NSCopying>)key;
- (void)setObject:(id)obj forKeyedSubscript:(id<NSCopying>)key;

但我有一个奇怪的问题,因为我以前从未遇到过:[(id)obj isKindOfClass:] throws an ARC Semantic Issue:

No known instance method for selector 'isKindOfClass:'

据我所知,我之前对 id 没有任何问题...这是 Xcode 的错误(我使用的是 Xcode 5 Developer Preview 2),还是有我忘记了一些重要的事情?

- (id)objectForKeyedSubscript:(id<NSCopying>)key {
if(![key isKindOfClass:[NSString class]]) { // error
...
} else {
...
}
}

最佳答案

isKindOfClass:NSObject protocol 的一个方法,所以你可以声明 key 符合协议(protocol)

- (id)objectForKeyedSubscript:(id <NSCopying, NSObject> )key { ...

或要求 key 派生自 NSObject(符合该协议(protocol)):

- (id)objectForKeyedSubscript:(NSObject <NSCopying> *)key { ...

关于objective-c - 调用 isKindOfClass 会在 Objective-C 中引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435530/

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