2013-01-16 6 views
10

ショートカット私はNSDictionaryNSDictionaryのアクセス値は

[my_dict objectForKey:@"field"] 
[my_dict valueForKey:@"field"] 
my_dict[@"field"] 

にアクセスするためのこれらの方法の違いを理解していない誰かが私に言うことはできますか?

+1

http://stackoverflow.com/questions/1062183/objective-c-whats-the-difference-between-objectforkey-and-valueforkey – codingNinja

+2

私の主な質問は、 'my_dict [@" field "]'ショートカットに関するものです。 –

答えて

49

[my_dict objectForKey:@"field"]は、NSDictionaryの方法である。あらゆる種類のオブジェクトを受け入れます。

[my_dict valueForKey:@"field"]はKVC法です。それはNSStringしか受け付けません。

my_dict[@"field"]は、objectForKey:と同じです。これは新機能です。

+0

本当に明確な説明。ありがとう –

+0

これを見ました。リテラルとサブスクリプトの主題については、https://clang.llvm.org/docs/ObjectiveCLiterals.html#dictionary-style-subscriptingをご覧ください。 – Armand

関連する問題