问题标签 [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 投票
3 回答
112 浏览

objective-c - 如何在快速枚举中更改此循环

我想更快地执行我的 For 循环,但我不知道Fast Enumeration. 任何人都可以建议我如何在fast enumeration.

0 投票
2 回答
312 浏览

objective-c - Early Exit from Fast Enumerate Loop?

When using fast enumeration, is there a way to exit early, i.e. before going through every element in the array?

0 投票
1 回答
915 浏览

ios - 使用快速枚举或 NSPredicate 在数组中搜索(来自带有字典的 plist)

我的应用程序从 plist 文件中读取数据并在 UITableView 中显示数据

我的 plist 示例:

现在一切正常。一切都显示在我的 TableView 中,并带有正确的详细单元格。我在 detailTextLabel 中显示值,在 TextLabel 中显示名称。

当然还有 numbersOfRowsInSection :

我正在使用它从 plist 中获取一个数组:

但后来我想添加一个 UISearchBar 来搜索我的数据(数组)。

我已经观看并阅读了教程,但我无法让它与快速枚举或 NSPredicate 一起使用,还有更多替代方案吗?

因为我正在使用许多字典从 plist 中读取数据?

到目前为止,我对此进行了测试但没有成功:

这将在搜索时显示“无结果”,有时会崩溃。

我还测试了:

不工作...

如何实现搜索栏来搜索数据?以及如何在搜索显示控制器中显示值和名称?

0 投票
3 回答
25100 浏览

ios - 使用快速枚举和 NSDictionary,无法保证按键的顺序进行迭代——我怎样才能使它按顺序排列?

我正在与一个 API 通信,该 API 将一个 NSDictionary 作为响应,其中包含我的应用程序需要的数据(数据基本上是一个提要)。此数据按最新到最旧排序,最新项目位于 NSDictionary 的前面。

当我快速枚举它们时for (NSString *key in articles) { ... },顺序似乎是随机的,因此我对它们进行操作的顺序不是从最新到最旧的顺序,就像我想要的那样,而是完全随机的。

我已经阅读过,当使用 NSDictionary 的快速枚举时,不能保证按顺序遍历数组。

但是,我需要它。如何让它按照 NSDictionary 所在的顺序遍历 NSDictionary?

0 投票
1 回答
2206 浏览

objective-c - 快速枚举与 enumerateObjectsUsingBlock

考虑:

这输出:

这表示这enumerateObjectsUsingBlock比常规迭代慢 4 倍左右。

什么时候使用其中一种?enumerateObjectsUsingBlock证明其成本合理的“附加价值”是什么?

0 投票
0 回答
84 浏览

objective-c - 我可以快速枚举@property(ies)

我只是想知道我是否可以for (id something in someArray)为属性做一些事情。例如,我为一个类 A 和这个类的两个对象 A、B 声明了一堆属性。我想检查对象 A 的每个属性并将它们与其他对象 B 的属性进行比较。有没有像快速枚举这样的快速方法可以使用?

0 投票
1 回答
7488 浏览

iphone - NSGenericException',原因:'*** Collection <__NSArrayM: 0x12a9f7d0> 在 MAPS 中被枚举时发生了突变

我的堆栈跟踪与地图有关..

如果我们尝试修改正在枚举的数组,则会发生 NSGenericException ......我已经注意不修改枚举数组。

谁能告诉我代码的问题,因为它有时会崩溃,有时不会。这是我的堆栈跟踪

0 投票
1 回答
820 浏览

ios - 如果对象在 iOS 中为空,则需要检查 NSArray 持有多种数据类型

我在我的 iOS 应用程序中使用了一个 NSArray,它包含三种类型的数据:

NSDate、NSString 和 NSNumber

我想做的是在 for 循环中迭代这个 NSArray 以检查对象是否为空,但是,我不确定如何执行此操作,因为该数组包含不同类型的对象而不是一种类型。这就是我想做的事情:

但是,我收到编译错误:“默认情况下,ARC 无法修改快速枚举变量;声明变量 __strong 以允许这样做。” 我不确定在迭代之前对象的类型是什么,那么我该如何解决这个问题?

0 投票
3 回答
85 浏览

ios - 使用 Objective-C 快速枚举时对 NSManagedContext 对象执行保存操作是否安全

我想知道这种代码是否可以使用

我问的原因是建议您不要跨线程传递对托管对象上下文对象的引用,并想知道这是否确实是这里发生的事情。

0 投票
2 回答
236 浏览

ios - 在 iOS 中对来自 Core Data 的实体的 NSArray 进行快速枚举时出现运行时错误

我有一个 NSArray 类型的 NSManagedObject 对象,这些对象是从我在 Core Data 中执行的获取结果返回的。NSArray 包含对象,因为我可以在查询后通过将 NSArray 的内容打印到控制台来验证这一点。然而,我的问题是我无法使用从查询中检索到的实体类型的对象对该数组进行快速枚举。我在运行时遇到的确切错误如下:

我正在使用的 for 循环甚至无法运行,因为它在 for 循环条件下中断:

我用来填充数组 self.entityArray 的实际 fetch 命令是:

反过来,这就是我的 retrieveEntity 方法的样子:

为什么我会收到上述错误?