2

次のような新しいリテラルとアクセサーについて知っています

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

と同等です

id obj = dict[@"keyStr"];

次のようなメインクラスへのいくつかの変更に気付きました

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

しかし、(const id []) とは何ですか?

[ ] 演算子を使用して独自のクラスを作成する方法

これは基本的に演算子のオーバーロードであり、ObjectiveC では不可能だと思っていましたが、+、/、- などの他の演算子をオーバーロードすることは可能でしょうか?

C++ では演算子のオーバーロードが可能ですが、Objective-C++ クラスで使用できるということですか?

4

2 に答える 2

2

const id []

の配列の単なる型宣言ですconst id

これは以下と同等です:

const int a[]

タイプのためにid

于 2012-10-23T10:47:53.217 に答える
2

const id []constObjective-C オブジェクトの単なる C 配列です。そのメソッドはNSDictionary、辞書リテラルからの構築を処理します - @{ @"a": @1 }。これはあなたが探しているものではありません。

を使用してオブジェクトX内のキーでオブジェクトにアクセスすることは、添え字です。somethingsomething[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です。

于 2012-10-23T10:48:28.517 に答える