2011-09-19 14 views
23

Estoy estudiando Objective-C y me encontré con esta declaración "for ... in". Lo busqué, pero todavía no entiendo cómo funciona. ¿Podría alguien explicarme en un novato cómo funciona esta afirmación?Para ... en la declaración Objective-C

+1

¿Quiere decir detrás de las escenas, o cómo se utiliza? –

+0

Puede encontrar muchos si busca "objetivo de enumeración rápida c" – progrmr

Respuesta

49

Ver fast enumeration documentation.

Básicamente, usted tendría, por lo general, una matriz, y puede obtener cada elemento de la matriz con un bucle útil en lugar de utilizar NSEnumerator o una variable de conteo entero. Hace que su código sea mucho más limpio para solicitar cada NSString en su matriz en lugar de tener que asignar a una variable usando objectAtIndex para cada pasada de su ciclo.

Compare:

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

Para:

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

Además de ser más limpio, también es más rápido. Hay una razón por la que esto también se llama "enumeración rápida". – zneak

+2

Más rápido, más seguro, más divertido ... OK, tal vez no el último. – jrturton

+1

¡Muchas gracias! Pero todavía no entiendo cuál es la función particular de la parte "cuerda". Si tuviera otros objetos en la matriz además de cadenas, ¿cómo funcionaría esto? ¿Todavía enumeraría a través de todos los objetos o saltaría cosas que no son una cadena? –

Cuestiones relacionadas