2011-09-19 14 views
23

私はObjective-Cを勉強しています。私はそれを探しましたが、私はまだそれがどのように機能するかは分かりません。誰かが、この声明がどのように働くのか、うなずきの中で私に説明することができましたか?For ... inステートメントObjective-C

+1

あなたは舞台裏を意味する、またはあなたはそれをどのように使用しますか? –

+0

"高速列挙の目的c"を検索すると、たくさん見つかることがあります。 – progrmr

答えて

49

fast enumeration documentationを参照してください。

基本的には、通常は配列があり、NSEnumeratorまたは整数カウント変数を使用する代わりに、便利なループを使用して配列内の各項目を取得できます。ループの各パスに対してobjectAtIndexを使用して変数に代入するのではなく、配列内の各NSStringを尋ねるコードをもっときれいにします。

は比較:

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

へ:

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

クリーナーに加えて、高速です。これは「高速列挙」とも呼ばれる理由があります。 – zneak

+2

より速く、より安全で楽しい... OK、最後のものではないかもしれません。 – jrturton

+1

ありがとう!しかし、私はまだ "文字列"部分の特定の機能が何かを理解していません。文字列のほかに配列内に他のオブジェクトがあれば、どうすればこの作業ができますか?それはまだすべてのオブジェクトを介して列挙するか、それは文字列ではないものをスキップしますか? –