如何在for循环中跟踪数组索引?

时间:2014-11-20 23:03:45

标签: objective-c indexing

如果我写:

 for (NSString* word in self.words)
{

}

我想跟踪我在阵列中的位置,我该怎么做?当然,我知道我可以创建一个int并在循环时递增它,也就是老式的方式。我想我只是想看看是否有一个这里有机会学习一些东西。就像在python中一样,我们为这种东西提供了方便的enumerate()函数,它为你提供了与对象配对的索引。

1 个答案:

答案 0 :(得分:1)

你可以使用[words indexOfObject:word];但要注意:如果数组中有相同的对象,它将返回第一个对象的索引。这也表明,效率非常低 - 如果每次调用都会迭代数组。

更好:

[words enumerateObjectsUsingBlocks:^(NSString *word,
                                     NSUInteger idx,
                                     BOOL *stop)
{
    //
}];

因为它同时为您提供枚举和索引。

documentation