对于......语句Objective-C

Aug*_*nha 27 objective-c for-in-loop

我正在研究Objective-C,我偶然发现了这个"for ... in"的声明.我搜索它但我仍然没有得到它的工作原理.有人可以用noob友好的方式向我解释这个陈述是如何运作的吗?

jrt*_*ton 58

请参阅快速枚举文档.

基本上你通常会有一个数组,你可以用一个方便的循环来获取数组中的每个项目,而不是使用NSEnumerator或整数计数变量.它使您的代码更清晰,可以在您的数组中请求每个NSString,而不是必须为objectAtIndex循环的每次传递分配一个变量.

相比:

for (NSString *string in myArray)
{
    // do stuff...
}
Run Code Online (Sandbox Code Playgroud)

至:

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

  • 您可以将类型设置为id,并在循环内检查它的类,如果您认为该数组可能包含多种类型的对象. (4认同)
  • 更快,更安全,更有趣......好吧,也许不是最后一个. (2认同)