问题标签 [fast-enumeration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1373 浏览

objective-c - 为什么 NSFastEnumeration 快?

有谁知道是否NSFastEnumeration真的比使用NSEnumerator或(对于数组)使用整数计数器和循环遍历元素更快(如在运行时性能方面)?

如果它确实更快,它是如何达到这个速度的?

或者“快”实际上是指编写迭代代码的速度更快?

提前致谢。

0 投票
5 回答
6037 浏览

objective-c - 快速枚举不同类型的 NSArray

我在这里有这个问题(以及关于 SO 的其他问题),以及关于 Objective-C 集合和快速枚举的 Apple 文档。尚不清楚的是是否NSArray填充了不同的类型,并且创建了一个循环,如下所示:

这里到底发生了什么?循环是否会跳过任何不是NSString? 例如,如果(为了参数)aUIView在数组中,当循环遇到该项目时会发生什么?

0 投票
3 回答
8721 浏览

objective-c - 按键排序的 NSDictionary 实例的快速枚举

概述

  • 我正在使用快速枚举来遍历 NSDictionary 实例
  • 我希望根据键的升序枚举 NSDictionary 实例,但似乎并非如此

我想做的事:

  • 我希望能够使用快速枚举以键的升序遍历 NSDictionary 实例

注意:请查看预期输出与实际输出

问题

  1. 我的实施有误吗?
  2. NSDictionary 的快速枚举是否保证基于键的排序?
  3. 如果没有,那么是否有解决方法但使用快速枚举?

例子

预期产出

实际输出

0 投票
1 回答
346 浏览

ios - NSPredicates 可以用来用字典中的值替换数组中的对象吗?

如果我有这样的 NSDictionary:

和这样的数组:

代码返回一个数组 programWithVariableValues 会是什么样子,例如,由@”-60″,@”12.6″,@”100″,@"+",@”.3″,nil 组成?

(用它们的 valueforkey 替换在数组中找到的任何变量)

那是使用 NSPredicate 的好地方吗?还是只是快速枚举?或者是其他东西?

0 投票
1 回答
134 浏览

objective-c - 这段代码会随机使我的应用程序崩溃吗?

如您所见,此方法会更新屏幕上的对象,如果对象不在屏幕上,则会创建该对象并将其添加到 scrollView 子视图层次结构中。现在我担心的是我在枚举它时修改了 scrollView 子视图层次结构。这最终会使我的应用程序崩溃吗?

如果是,如何修改上述代码以确保安全并实现相同的功能?

谢谢!

0 投票
2 回答
106 浏览

objective-c - 在 Objective C 中使用 for-in 循环访问特定类型的对象

我正在运行一个 for-in 循环NSMutableArray。数组中有 ClassA的实例,其中一些实际上是其子类的实例B

所以如果我只想要 subclass 的成员B,我正在检查每个对象的类,我if在循环体内的一个条件下。

有没有可能,而不是写这样的东西,

我可以做这样的事情吗?

我会得到同样的结果吗?

0 投票
2 回答
348 浏览

objective-c - Objective C快速枚举麻烦

我正在尝试使用快速枚举来打印播放列表中的所有歌曲,但似乎我做错了。有人可以帮我吗?我已经定义了一个这样的 Song 类:

displaySong 函数如下所示:

现在,到 PlayList 类:

有人可以向我解释为什么我的代码不起作用吗?
什么 displayPlaylist 方法更好?

0 投票
1 回答
653 浏览

objective-c - 字符串文字的 NSArray 上的快速枚举

使用弧...

产生索引越界错误。

*** -[__NSArrayM objectAtIndex:]:空数组的索引 0 超出范围

我犯了什么愚蠢的错误?

0 投票
1 回答
1090 浏览

.net - 在大型网络文件系统上快速设置可继承 ACE

我对网络文件系统上的 ACL 有疑问。

基本上,我想在顶级文件夹对象上设置权限,该对象下面可能有 100,000 多个文件和文件夹对象。我希望可以通过所有子文件夹和子文件继承权限(IE '适用于文件、文件夹和子文件夹'为true)。

我不想丢弃任何现有的可继承权限(IE '用该对象的可继承权限替换所有子对象权限'是false)。

因此,当我运行 Set-ACL、SetACL.exe、XCACLS.vbs,甚至使用 Windows GUI 时,该过程需要很长时间才能完成 - 显然是由于子目录的大小。

我现在已经习惯了,但是:

我想知道 - 为什么这样?

归根结底,我不是只在一个文件夹对象上写一个 ACE 吗?

  • 我没有遍历目录;
  • 我没有修改子文件和文件夹上的单个 ACL(我不认为);和
  • 我不会替换权限

我假设如果您访问子文件夹/文件对象,它会检查它的显式 ACE 以查看您是否有权限,如果您没有权限,它会检查任何可继承的权限(来自父文件夹对象)可能会给你访问权限。

那么,设置一个可继承的权限是否也会导致一个新的、单独的 ACE 被写入每个子文件和文件夹,即使您在技术上只是在顶层设置了一个 ACE?

没有办法在顶层设置一个 ACE 而没有命令去枚举整个子目录?我希望在大量文件和文件夹上快速有效地执行此操作。

我希望这是有道理的。期待任何建议。

里斯。

0 投票
1 回答
1977 浏览

ios - 将新的 CGPoint 值与 Array 中的 CGPoint 值进行比较

我正在生成许多具有随机位置的圆圈。我要防止的是圆圈相互重叠。所以我想将新生成的 CGPoint 值与数组中的值进行比较,如果该值位于其中一个 CGPoint 的半径区域中,则让它生成一个新值。

除了重叠的东西,我得到了大部分。我已经从我尝试过的东西中评论了这部分,但这并没有真正起作用(有缺陷的逻辑)。我不确定如何遍历 CGPoint 的各个值并进行比较。

更新: 我对代码进行了一些更改,并添加了一个检查以查看 CGPoint 是否会重叠。问题是每当我想尝试类似的东西时

我不断陷入无限循环。