关于在objective-c中迭代2个数组的简单问题

时间:2011-05-11 14:38:24

标签: objective-c

我正在使用:

在objective-c中迭代一个NSArray
for (id object in array1) {
  ...
}

我现在有另一个array2,我需要使用当前array1的相同索引访问。

我应该使用其他声明吗?

感谢

2 个答案:

答案 0 :(得分:7)

您有几种选择:

  1. 使用c-style for循环,如Dan建议

  2. 以快速枚举方法跟踪单独变量中的当前索引:

    int index = 0;
    for (id object in array1) {
       id object2 = [array2 objectAtIndex:index];
       ...
       ++index;
    }
    
  3. 使用enumerateObjectsUsingBlock:方法(OS 4.0 +):

    [array1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
        id obj2 = [array2 objectAtIndex:idx];
        ...
    }];
    

答案 1 :(得分:4)

如果需要共享索引,可以使用c样式循环:

for( int i = 0; i < [array1 count]; ++i )
{
    id object2 = [array2 objectAtIndex:i];
    //Do something with object2
}