2013-02-05 10 views
5

Rozpoczynam Objective-C (pochodzący z Pythona)
Potrzebuję stworzyć i zainicjować prosty słownik.
W Pythonie byłem przyzwyczajony do zrobienia:NSArray of NSDictionary - prosta inicjalizacja składnia

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

Oto, co robię w Objective-C

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

nie istnieje prostszy sposób, aby zainicjować tę tablicę słowników?

Odpowiedz

17

od iOS6 można użyć literałów

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

więcej info: http://clang.llvm.org/docs/ObjectiveCLiterals.html

+0

Wow to naprawdę fajne. Dzięki ! –

+0

Myślę, że możemy nawet zostawić główny przecinek, prawda? –

+0

@PierredeLESPINAY Tak, możesz zostawić główny przecinek – peko