objective c - Enumeración rápida sobre objeto nulo
objective-c fast-enumeration (2)
La enumeración rápida se implementa a través del método - countByEnumeratingWithState:objects:count:
que devuelve 0 para indicar el final del bucle. Como nil
devuelve 0
para cualquier método, su bucle nunca debería ejecutarse. (Así que es seguro).
¿Qué debería pasar aquí? ¿Es seguro?
NSArray *nullArray=nil;
for (id obj in nullArray) {
// blah
}
Más específicamente, tengo que hacer esto:
NSArray *array=[thing methodThatMightReturnNil];
if (array) {
for (id obj in array) {
// blah
}
}
o esta bien ?:
for (id obj in [thing methodThatMightReturnNil]) {
// blah
}
Nada pasará. Un bucle for-in utiliza el protocolo NSFastEnumeration
para NSFastEnumeration
en iteración los elementos de una colección, por lo que esencialmente está enviando un mensaje a nil
que es seguro en Objective-C.