Objective-C iOS6 [ ] 运算符重载 (const id [])



我知道新的文字和访问器,比如

id obj = [dict objectForKey:@"keyStr"];

相当于

id obj = dict[@"keyStr"];

我注意到主类的几个变化,比如

+ (id)dictionaryWithObjects:(const id [])objects forKeys:(const id [])keys count:(NSUInteger)cnt;

但是什么是(常量ID [])?

如何使用 [ ] 运算符创建自己的类

这基本上是运算符重载,我认为这在 ObjectiveC 中是不可能的,是否有可能重载其他运算符,如 +,/,- 等......

运算符重载在C++中是可能的,这是否意味着我可以将其用作 Objective-C++ 类?

const id []只是一个constObjective-C 对象的 C 数组。该方法处理字典文本 -@{ @"a": @1 }NSDictionary的构造。这不是你要找的。

通过对象内部的键X访问对象,something使用something[X]下标

如果希望类支持下标,则在要采用整数时实现- (id)objectAtIndexedSubscript:(NSUInteger)idx,如果要采用对象,则实现- (id)objectForKeyedSubscript:(id)key。有关详细信息,请参阅此功能的 clang("LLVM 编译器")文档。

二传手的相应方法是- (void)setObject:(id)anObject atIndexedSubscript:(NSUInteger)index- (void)setObject:(id)object forKeyedSubscript:(id<NSCopying>)aKey

const id []

只是一个const id数组的类型声明。

它只相当于:

const int a[]

对于id类型。

相关内容

最新更新