5
私は次のコードがある場合:高速列挙はすべての反復でコレクション式を評価しますか?
for (UIView *view in [myArray copy])
をそれは私がすべての繰り返しでmyArray
にcopy
メッセージを送信しています、またはObjective-Cのは一度だけcopy
を行うのに十分スマートですし、使用することを意味していますそれは全体のループですか?
私は次のコードがある場合:高速列挙はすべての反復でコレクション式を評価しますか?
for (UIView *view in [myArray copy])
をそれは私がすべての繰り返しでmyArray
にcopy
メッセージを送信しています、またはObjective-Cのは一度だけcopy
を行うのに十分スマートですし、使用することを意味していますそれは全体のループですか?
「スマート」の問題ではありませんが、はい、式[myArray copy]
が一度前に評価されます。
全く説明するのは難しいことではありません。あなたはこの質問を非常に明確に尋ねました! – matt
答えは、 'copy'は一度だけ実行されることです。右側の式は 'in'演算が開始される前に評価されます。 –
比較http://stackoverflow.com/questions/3882254/objective-c-for-each-fast-enumeration-evaluation-of-collectionまたはhttp://stackoverflow.com/questions/12281461/is-this-an-非効率的な使用方法の高速列挙である。 –