如何不使用循环或游标来遍历NSArray?

14 浏览
0 Comments

如何不使用循环或游标来遍历NSArray?

我有一个NSArray,其中包含对象(CLLocation)。我可以有50,100,300或更多的对象。实际上,这个数组在用户行走时使用,可以遵循一个方向。但是用户可以从我的NSArray中间开始,你知道我的意思吗?

好的,我必须一直循环我的数组,以知道我的用户与我的数组中的位置相比在哪里。

我的问题是:是否可以像Java那样使用列表中的\"光标\",而不是循环,简单地调用\"下一个对象\"来遍历我的数组?

因为我需要让用户走过我的数组中的所有位置。

例如:

  1. 我的数组中的数量:100
  2. 用户从索引34的位置开始(找到最近的位置)
  3. 用户必须做35、36、37......100和0、1、2、3......直到33。

希望这很清楚,我真的不知道如何在不使用for循环的情况下实现这一点......

谢谢帮助和建议!

问候,

Lapinou。

admin 更改状态以发布 2023年5月23日
0
0 Comments

看起来你想使用 NSEnumerator

NSEnumerator 类参考

NSArray *anArray = // ... ;
NSEnumerator *enumerator = [anArray objectEnumerator];
id object;
while ((object = [enumerator nextObject])) {
    // do something with object...
}

0
0 Comments

以下是一种方法:

NSArray * arr = ... yourArray
int index = [arr indexOfObject:currentLocation];
index ++;
if (index == arr.count) index = 0;
id nextLocation = arr[index];

另一种可能是创建一个全局计数器变量来存储当前位置。如果这些需要在用户关闭应用程序后持续存在,您可以将其写入用户默认值。

0