2013-02-05 10 views
5

Inizio Objective-C (proveniente da Python)
Ho bisogno di creare e inizializzare un dizionario semplice.
In Python ero abituato a fare:NSArray of NSDictionary - Sintassi di inizializzazione semplice

arr = [ 
    {'fieldX': value1, 'fieldY': value2}, 
    {'fieldX': value3, 'fieldY': value3}, 
] 

Ecco quello che sto facendo in Objective-C

NSArray *arr = [NSArray arrayWithObjects: 
    [NSDictionary dictionaryWithObjectsAndKeys: 
     value1, @"fieldX", value2, @"fieldY" 
     , nil] 
    , [NSDictionary dictionaryWithObjectsAndKeys: 
     value3, @"fieldX", value4, @"fieldY" 
     , nil] 
    , nil 
]; 

Non c'è un modo più semplice per inizializzare questo array di dizionari?

risposta

17

dal iOS6 è possibile utilizzare letterali

NSArray *arr = @[ 
       @{@"fieldX": value1, @"fieldY": value2}, 
       @{@"fieldX": value3, @"fieldY": value3} 
       ]; 

maggiori informazioni: http://clang.llvm.org/docs/ObjectiveCLiterals.html

+0

Wow che è davvero cool. Grazie ! –

+0

Penso che possiamo anche lasciare la virgola principale, no? –

+0

@PierredeLESPINAY si puoi lasciare la virgola principale – peko