2011-09-19 13 views
23

Sto studiando Objective-C e mi sono imbattuto in questa frase "for ... in". L'ho cercato ma ancora non capisco come funziona. Qualcuno potrebbe spiegarmi in un modo noob-friendly come funziona questa affermazione?Per ... in statement Objective-C

+1

Vuoi dire che dietro le quinte, o come lo si utilizza? –

+0

Puoi trovare lotti se cerchi "l'obiettivo di enumerazione veloce c" – progrmr

risposta

49

Vedere fast enumeration documentation.

Fondamentalmente avresti, di solito, un array, e puoi ottenere ogni elemento nell'array con un ciclo utile invece di usare NSEnumerator o una variabile di conteggio intero. Rende molto più pulito il tuo codice per richiedere ogni NSString nell'array piuttosto che assegnarlo a una variabile utilizzando objectAtIndex per ogni passaggio del tuo loop.

Confronta:

for (NSString *string in myArray) 
{ 
    // do stuff... 
} 

A:

for (int i = 0; i < [myArray count]; i++) 
{ 
    NSString *string = [myArray objectAtIndex:i]; 
    // Do stuff... 
} 
+0

Oltre ad essere più pulito, è anche più veloce. C'è una ragione per cui questo è anche chiamato "enumerazione veloce". – zneak

+2

Più veloce, più sicuro, più divertente ... OK, forse non l'ultimo. – jrturton

+1

Grazie mille! Ma ancora non capisco quale sia la particolare funzione della parte "stringa". Se avessi altri oggetti nell'array oltre alle stringhe, come avrebbe funzionato? Continuerebbe ad enumerare attraverso tutti gli oggetti o salterà cose che non sono una stringa? –