Cocoaの添字演算子”[]”のオーバーロード

  • 数値による添字演算子のオーバーロード

以下のメソッドを実装しているとObj[nnn]が使えるようになる。

- (id)objectAtIndexedSubscript:(NSUInteger)idx;
- (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx;
  • 文字列による添字演算子のオーバーロド

以下のメソッドを実装しているとobj[@”string”]が使えるようになる。

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

NSArrayとNSDictonary以外でどのように使うべきかは不明。C++のように超絶技巧で使うときも有るのかもしれない。