5
Se ho il seguente pezzo di codice:L'enumerazione rapida valuta l'espressione di raccolta su ogni iterazione?
for (UIView *view in [myArray copy])
Vuol dire che sto inviando il messaggio copy
a myArray
su ogni iterazione, o Objective-C è abbastanza intelligente da fare copy
solo una volta, e l'uso per l'intero ciclo?
Non difficile da spiegare. Hai fatto questa domanda molto chiaramente! – matt
La risposta è che 'copia' viene eseguita una sola volta. L'espressione a destra viene valutata prima dell'avvio dell'operazione 'in'. –
Confronta http://stackoverflow.com/questions/3882254/objective-c-for-each-fast-enumeration-evaluation-of-collection o http://stackoverflow.com/questions/12281461/is-this-an- inefficiente-way-of-usando-fast-enumerazione. –