Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C中的…声明_Objective C_For In Loop - Fatal编程技术网

Objective c 目标C中的…声明

Objective c 目标C中的…声明,objective-c,for-in-loop,Objective C,For In Loop,我正在学习Objective-C,我遇到了这个“for…in”语句。我搜索了一下,但还是不知道它是怎么工作的。有人能用一种友好的语言向我解释一下这句话是怎么说的吗 通常,基本上你会有一个数组,你可以通过一个方便的循环来获取数组中的每一项,而不是使用N分子或整数计数变量。请求数组中的每个NSString,而不必为循环的每个过程使用objectAtIndex将其分配给变量,这会使代码更加清晰 比较: for (NSString *string in myArray) { // do stuf

我正在学习Objective-C,我遇到了这个“for…in”语句。我搜索了一下,但还是不知道它是怎么工作的。有人能用一种友好的语言向我解释一下这句话是怎么说的吗

通常,基本上你会有一个数组,你可以通过一个方便的循环来获取数组中的每一项,而不是使用N分子或整数计数变量。请求数组中的每个NSString,而不必为循环的每个过程使用
objectAtIndex
将其分配给变量,这会使代码更加清晰

比较:

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

for(int i=0;i<[myArray count];i++)
{
NSString*string=[myArray objectAtIndex:i];
//做些事情。。。
}

你指的是幕后,或者你如何使用它?如果你搜索“快速枚举目标c”,你可以找到很多东西。除了更干净,它也更快。这也被称为“快速枚举”是有原因的。更快、更安全、更有趣。。。好的,也许不是最后一个。非常感谢!但我仍然不明白“字符串”部分的特殊功能是什么。如果数组中除了字符串之外还有其他对象,这将如何工作?它仍然会枚举所有对象,还是会跳过非字符串的内容?如果您认为数组可能包含多种类型的对象,可以将类型设置为id,并在循环中检查它的类。谢谢jrturton,我想我现在就知道了:)
for (int i = 0; i < [myArray count]; i++)
{
    NSString *string = [myArray objectAtIndex:i];
    // Do stuff...
}