Objective-C中的快速枚举能保证迭代的顺序吗?

发布于 2024-08-31 15:25:24 字数 260 浏览 9 评论 0 原文

我可以期望它按顺序从数组的开头到结尾吗?在文档中找不到有关此的任何内容。

ie

for (id val in array)
{
   NSLog(@"%@", val);
}

总是会打印出与

for (int i = 0; i < [array count]; ++i)
{
   NSLog(@"%@", [array objectAtIndex:i]);
}

Can I expect it to go from the start of an array to the end in order? Can't find anything in the docs about this.

i.e. is

for (id val in array)
{
   NSLog(@"%@", val);
}

always going to print out the same as

for (int i = 0; i < [array count]; ++i)
{
   NSLog(@"%@", [array objectAtIndex:i]);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寄与心 2024-09-07 15:25:24

来自 Apple 的 Objective-C 文档 关于快速枚举:

对于具有明确定义顺序的集合或枚举器(例如从数组派生的 NSArray 或 NSEnumerator 实例),枚举将按该顺序进行,因此,如果需要,只需计算迭代次数即可为您提供集合中的正确索引.

From Apples' Objective-C documentation on fast enumeration:

For collections or enumerators that have a well-defined order—such as NSArray or NSEnumerator instance derived from an array—the enumeration proceeds in that order, so simply counting iterations will give you the proper index into the collection if you need it.

滴情不沾 2024-09-07 15:25:24

我在发布后再次找到了答案。我的旧参考文献没有提到迭代的顺序,但在线参考文献却提到了。该数组确实是按顺序迭代的。

Once again I've found the answer right after posting. My old reference didn't mention the order of iteration, but the online one did. The array is indeed iterated in order.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文