25

考虑以下语句:

for (NSString *string in anArray) {

    NSLog(@"%@", string);
}

如何stringanArray不使用传统for循环且不检查stringin 中每个对象的值的情况下获取 in 的索引anArray

4

2 回答 2

54

数组保证按对象顺序迭代。所以:

NSUInteger index = 0;
for(NSString *string in anArray)
{
    NSLog(@"%@ is at index %d", string, index);

    index++;
}

或者,使用块枚举器:

[anArray
    enumerateObjectsUsingBlock:
       ^(NSString *string, NSUInteger index, BOOL *stop)
       {
           NSLog(@"%@ is at index %d", string, index);
       }];
于 2012-08-25T04:16:37.493 回答
-5

试试这个。

for (NSString *string in anArray)
{
  NSUInteger index = [anArray indexOfObject:string];
}
于 2014-02-03T10:38:58.967 回答