ios - 在不使用循环但使用游标的情况下遍历 NSArray?

标签 ios objective-c arrays for-loop

我有一个 NSArray,里面有对象 (CLLocation)。我可以在里面放 50、100、300 或更多的物体。事实上,这个数组是在用户行走时使用的,可以跟随一个方向。但是用户可以从我的 NSArray 的中间开始,你知道我的意思吗?

好吧,我必须一直循环我的数组,以了解我的用户与我的数组中的位置进行比较的位置。

我的问题是:是否可以在列表中使用类似 Java 的“游标”,并简单地调用“下一个对象”在我的数组中移动而不是循环?

因为我需要用户在阵列的所有位置上行走。 示例:

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

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

感谢您的帮助和建议!

问候, 拉皮努。

最佳答案

这是一种方法:

NSArray * arr = ... yourArray

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

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

关于ios - 在不使用循环但使用游标的情况下遍历 NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305054/

相关文章:

javascript - 从多个对象数组中返回具有最高值的对象

ios - 使用 afnetworking 3.0.4 时发生崩溃,[NSProgress setTotalUnitCount :], 谁能告诉我原因

ios - 我们可以使用 Facebook SDK 将文档目录视频上传到 Facebook 吗?

objective-c - 在特定时间内移动 slider

ios - 发射器不随父节点旋转

c - 随机数组选择

ios - Swift:如何将数据传递到我的购物车(数组)中?

ios - http 流视频 PlaybackDidFinish 未调用

ios - UITableViewControler 推送到另一个 TableViewController 图形问题

ios - 打开 Thread Sanitizer 会产生信号 SIGABRT