简体   繁体   English

in for循环中的语句

[英]in statement in for loop

i have a for loop state ment as under: 我有一个for循环状态如下:

    for(NSString* name in nameArray)

nameArray is NSArray. nameArray是NSArray。

In the above statement, what does it mean for: NSString* name in nameArray 在上面的语句中,它对于nameArray中的NSString * name意味着什么

Iterate through all NSString* in nameArray. 遍历nameArray中的所有NSString *。 Can be written less cleanly: 写得不那么干净:

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

Keep in mind: Don't iterate a mutable array and mutate it (and make sure no other thread does). 请记住:不要迭代一个可变数组并改变它(并确保没有其他线程可以)。 In such a case you need to call count every iteration like displayed above. 在这种情况下,您需要像上面显示的那样每次迭代调用count

This is fast enumeration syntax introduced in Objective-C 2.0. 这是Objective-C 2.0中引入的快速枚举语法。 Check this tutorial for the details. 查看教程了解详细信息。 Also you can Google "objective c fast enumeration" for many other resources available online. 您还可以通过谷歌“客观c快速枚举”获取在线提供的许多其他资源。

这意味着将对nameArray每个对象执行括号内的代码,您将通过NSString *name变量访问该对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM