问题标签 [nsfastenumeration]

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 回答
98 浏览

ios - NSFastEnumerationIteration.member Swift 3

我很难将我的 Swift 2.2 应用程序转换为 Swift 3.0。我有一些错误,我还没有找到解决方案。目前,我最糟糕的问题是NSFastEnumerationIteration,我尝试从 JSON 获取记录,但由于这个错误我不能。这是我的代码有问题的屏幕截图:

NSFastEnumerationInteration 出现 Swift 3.0 错误

0 投票
4 回答
2114 浏览

objective-c - SWIFT 3.0 迁移错误 - 通用 Obj-C 类的扩展无法在运行时访问该类的通用参数

我的这段代码在 Swift 2 中运行良好。

自从我升级到 Swift 3

泛型 Objective-C 类的扩展无法在运行时访问该类的泛型参数

我不知道如何解决这个问题。任何帮助深表感谢!

0 投票
0 回答
33 浏览

find - Swift 枚举器和 GNU find 之间的差异

出于好奇,我在 Swift 中编写了一个类似 GNUfind的模拟器,并且偶然发现了这个时间差异:

斯威夫特代码如下:

为什么 Swiftenumerator比 GNU 慢得多find?有没有办法加速 Swift 代码以达到类似的速度find

0 投票
1 回答
297 浏览

json - 热门修复类型“NSFastEnumerationIterator.Element”(又名“Any”)没有下标成员

试图从此 JSON 中获取帖子的“标题”、“内容”、类别的“标题”和作者姓名。得到错误Type 'NSFastEnumerationIterator.Element' (aka 'Any') has no subscript members。在控制台中打印帖子工作正常,但在尝试获取帖子标题时出错。请帮忙。JSON & Switch 代码是

JSON

SWIFT代码

0 投票
1 回答
71 浏览

ios - NSFastEnumeration message sent to deallocated instance

I am trying to implement the NSFastEnumeration protocol for a sqlite query.

I am running into: message sent to deallocated instance

It seems as if the 'row' object is not being retained, so when it needs to be accessed in loop its already been deallocated.

Do I need to save the results when iterating in 'countByEnumeratingWithState' in a'strong' dataset, so that it is retained?

IE:

Then inside the while loop:

EDIT:

A little more research reveals that maybe I can just use __autoreleasing:

Without having to maintain a strong array of objects. Is this the right solution?

0 投票
2 回答
51 浏览

objective-c - 字典的快速枚举数组

我有以下格式的字典数组。

myarary = {day = 0; 小时 = 1; 值 = 0;},{天 = 0; 小时 = 2; 值 = 0;}.... {第 6 天 =1; 小时=23;值 =1;}

所以基本上是 7 天,每天 24 小时,每小时值为 1 或 0。因此我的数组中共有 168 个字典。

现在我的任务是提取给定日期的几个小时范围内的值。例如,对于第 6 天,我必须提取 2、9 和 15 到 18 之间的另一个时间段,依此类推。

我设法解决了这个问题,使用以下格式的嵌套 for 循环

for (i =< start_of_hour_slot;i=<last_hour_of_slot); i++) for(j = 0; j<=6; j++)

现在这可行,但是它太长了,而且我的代码充满了循环,必须有更简单的快速枚举方法吗?

其次,我的 for 循环没有给我灵活性。

我喜欢在一个位置,我可以简单地提取让我们说第 7 天,三个不同的时间段,以及值。

或者可能持续多天,例如第 3、4、5 天、第 2-9、11、15 天...

0 投票
1 回答
1038 浏览

ios - 获取 NSGenericException 的原因:'*** Collection被枚举时发生了变异。

Collection <NSConcreteHashTable: 0x282c34140> was mutated while being enumerated即使我实际上并没有在我的代码中使用快速枚举,我也有理由得到这个 NSGenericException 。

当 NSFetchedResultsController 委托作为我的 Core Data 对象中的属性被调用时触发此崩溃,最终调用此方法:

基本上,我正在尝试更改 MKAnnotation 对象(实际上也是一个 CoreData NSManagedObject)的“坐标”值,最终导致崩溃。奇怪的是,我得到了 'collection was mutated while being enumerated' 错误,即使上面的代码中没有任何“快速枚举”。我的意思是,我正在更改可变数组中对象的一个​​属性,该数组本身就是字典的一部分。

不幸的是,由于“注释”是一个 NSManagedObject,我不能只是从数组中“复制”它,然后更改复制的值并替换数组中的对象。

崩溃报告如下所示:

有人可以帮我在这里找到问题吗?我使用的是什么我看不到的“枚举”?还是有其他事情发生?