2012-07-01 4 views
7

ho appena letto questo frammento da another answer:Block sintassi Objective C

Quando si crea un blocco con la sintassi ^{} ...

capisco questa sintassi, e usarlo regolarmente , tuttavia ho dedotto da ciò che potrebbero esserci altre sintassi che possono essere usate per creare blocchi. Ci sono? Se ci sono, ci sono dei vantaggi delle diverse sintassi?

risposta

5

Guardando here Credo che le uniche differenze sono se si utilizzano tipi restituiti/argomenti

+0

Questa è la risposta concisa che stavo cercando. –

12

Se la domanda riguarda la sintassi letterale blocco (quello utilizzato per funzioni anonime), qui è la forma generale

^tipo di ritorno (lista argomenti) {espressioni}

Basato su il che, è possibile omettere il tipo di ritorno

^(lista argomenti) {} espressioni

poiché può essere dedotto dal tipo di reso. Se non vi è alcun valore di ritorno, void è la scelta.

Inoltre, è possibile scrivere

^{} espressioni

se non ci sono argomenti.

Questa è la stessa

^ void (void) { NSLog(@"Something"); } 
+0

@JoshCaswell Grazie per la formattazione. Sembra migliore. –

+0

Perché vedo a volte il tipo è prima di '^'? – Philip007

+0

@ Philip007 Scusa, cosa intendi? Non riesco a capire cosa stai chiedendo .. –