2013-01-16 11 views
10

Non capisco le differenze tra questi modi di accesso NSDictionary valorivalori di accesso NSDictionary collegamento

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

qualcuno può dirmi?

+1

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

+2

Il mio interrogatorio principale riguardava più la scorciatoia 'my_dict [@" campo "]' . –

risposta

49

[my_dict objectForKey:@"field"] è un metodo NSDictionary. Accetta qualsiasi tipo di oggetto.

[my_dict valueForKey:@"field"] è il metodo KVC. Accetta solo NSString.

my_dict[@"field"] è uguale a objectForKey:. Questa è una nuova funzionalità aggiunta.

+0

spiegazione davvero chiara. Grazie –

+0

appena visto questo. Dai un'occhiata a https://clang.llvm.org/docs/ObjectiveCLiterals.html#dictionary-style-subscripting per una discussione completa sul tema dei letterali e degli abbonamenti. – Armand

Problemi correlati