NSDictionary の objectForKey と valueForKey

いつも混乱するのでメモ。

  • objectForKey はいわゆる dictionary/map のキーによる値取得*1
  • valueForKey は key-value coding 用

以下ページの解説が参考になる。

NSMutableDictionary の setObject:forKey:setValue:forKey: も同様の違いらしい。

なので普通に dictionary/map の値を扱う場合は objectForKeysetObject:forKey を使っておけば良い。

dictionary/map で key といえば対になるのは value だろ・・・ややこしい・・・。 value の方は引数が NSString になってるから、 dictionary/map のキーとして文字列固定なのはおかしい、と覚えれば良いかな?

*1:java.util.Map#get(Object key) 的な