我知道新的文字和访问器,比如
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 []
只是一个const
Objective-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
类型。