如果我写:
for (NSString* word in self.words)
{
}
我想跟踪我在阵列中的位置,我该怎么做?当然,我知道我可以创建一个int并在循环时递增它,也就是老式的方式。我想我只是想看看是否有一个这里有机会学习一些东西。就像在python中一样,我们为这种东西提供了方便的enumerate()
函数,它为你提供了与对象配对的索引。
答案 0 :(得分:1)
你可以使用[words indexOfObject:word];
但要注意:如果数组中有相同的对象,它将返回第一个对象的索引。这也表明,效率非常低 - 如果每次调用都会迭代数组。
更好:
[words enumerateObjectsUsingBlocks:^(NSString *word,
NSUInteger idx,
BOOL *stop)
{
//
}];
因为它同时为您提供枚举和索引。