2011-09-19 54 views
23

我正在學習Objective-C,並且遇到了「for ... in」語句。我搜索了它,但我仍然沒有得到它的工作原理。有人能夠以一種友好的態度向我解釋這個聲明是如何工作的嗎?For ...在聲明中Objective-C

+1

你的意思是在幕後,或你如何使用它? –

+0

你可以找到很多,如果你搜索「快速枚舉目標c」 – progrmr

回答

49

請參閱fast enumeration documentation

基本上你會有,通常,一個數組,你可以用一個方便的循環獲取數組中的每個項目,而不是使用NSEnumerator或整數計數變量。它讓你的代碼更清晰,可以請求數組中的每個NSString,而不必爲每個循環使用objectAtIndex分配一個變量。

比較:

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

更快,更安全,更有趣...好吧,也許不是最後一個。 – jrturton

+1

非常感謝!但我仍然不明白「字符串」部分的特定功能。如果我在數組中有字符串以外的其他對象,這將如何工作?它仍然會枚舉所有對象,還是會跳過不是字符串的東西? –