aka*_*kyy 1 xcode objective-c subscript automatic-ref-counting
我想在我的自定义类中实现下标,从而实现以下方法:
- (id)objectForKeyedSubscript:(id <NSCopying>)key NS_AVAILABLE(10_8, 6_0);
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key NS_AVAILABLE(10_8, 6_0);
Run Code Online (Sandbox Code Playgroud)
但我有一个奇怪的问题,因为我以前从未见过它:[(id)obj isKindOfClass:]抛出一个ARC语义问题:
没有已知的选择器实例方法'isKindOfClass:'
据我所知,之前我没有遇到任何问题id......这是Xcode的错误(是的,我使用的是Xcode 5 DP2),还是我忘记了重要的事情?
- (id)objectForKeyedSubscript:(id <NSCopying>)key {
if(![key isKindOfClass:[NSString class]]) { // ERROR
...
} else {
...
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我不想听到"哦,这是在NDA之下,不应该在这里讨论".我不讨论任何API,功能,等等.我只是让你知道我正在使用测试版软件,所以它可能只是一个简单的bug.
isKindOfClass:是NSObject 协议的一种方法,因此您可以声明key符合协议
- (id)objectForKeyedSubscript:(id <NSCopying, NSObject> )key { ...
Run Code Online (Sandbox Code Playgroud)
或要求key衍生自NSObject(符合该协议):
- (id)objectForKeyedSubscript:(NSObject <NSCopying> *)key { ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2233 次 |
| 最近记录: |