fast-enumeration相关内容

enumerateObjectsUsingBlock: 的 BOOL *stop 参数是什么?

我最近一直在使用 enumerateObjectsUsingBlock: 来满足我的快速枚举需求,但我很难理解 BOOL *stop 在枚举块. NSArray 类引用状态 stop:对布尔值的引用.该块可以将值设置为 YES 以停止对数组的进一步处理.stop 参数是一个 out-only争论.您应该只在阻止. 所以当然我可以在我的块中添加以下内容来停止枚举: if (idx ..

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

我可以期望它从数组的开头到结尾按顺序排列吗?在文档中找不到关于此的任何内容. 即是 for (id val in array){NSLog(@"%@", val);} 总是会打印出与 一样的东西 for (int i = 0; i 解决方案 来自 Apples 的 Objective-C 文档关于快速枚举: 对于具有明确定义顺序的集合或枚举器(例如从数组派生的 NSArr ..
发布时间:2021-11-18 05:10:30 移动开发

通过 UICollectionView 单元格快速枚举 - Swift

我正在尝试快速枚举我所有的集合视图单元格,但是下面的这个实现给了我一个警告. for cell in self.collectionView?.visibleCells() as [UICollectionViewCell] {//做东西} 下面的错误出现在第一行: 后缀'?'的操作数应该有可选类型;类型是'(UICollectionView, cellForItemAtIndexPat ..

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

我在 NSMutableArray 上运行 for-in 循环.数组中还有A 类的实例,其中一些实际上是其子类B 的实例. 所以如果我只想要子类 B 的成员,我会检查我在循环体内的 if 条件中获得的每个对象的类. 有没有可能,而不是写这样的东西, for(A* obj in collection){if([obj isKindOfClass:[B 类]]){//采取一些行动.}} ..
发布时间:2021-06-11 20:02:30 移动开发

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

概述 我正在使用快速枚举来遍历 NSDictionary 实例 我希望根据键的升序枚举 NSDictionary 实例,但事实并非如此 我想做什么: 我希望能够使用快速枚举按键的升序遍历 NSDictionary 实例 注意:请查看预期输出与实际输出 问题 我的实施是否有误? NSDictionary 的快速枚举是否保证基于键的排序? 如果没有,那么是否有 ..
发布时间:2021-06-09 19:51:18 移动开发

需要生成的JSON文档与插入iOS的NSMutableDictionary中的对象的顺序相同

我正在从NSMutableDictionary生成一个JSON文档,该文档由指向NSStrings的键以及依次指向其他NSMutableDictionary的两个键组成.我的问题是,当我输出JSON文档时,我注意到JSON文档具有以不同顺序插入NSMutableDictionary中的对象.例如,我当前的输出如下所示: JSON Output: { "devicetype" : "iPh ..
发布时间:2021-02-13 21:25:10 移动开发

如何实现NSFastEnumeration协议?

我有一个课,我希望我的课向NSFastEnumeration协议确认.我已经阅读了文档,但不清楚.有人可以告诉我协议方法应该返回什么以及如何工作吗? 解决方案 Apple的唯一的NSFastEnumeration方法countByEnumeratingWithState:objects:count:返回集合的大块.每当需要更多项目时便会执行该操作,直到通过返回0指示没有更多项目为止.将块作 ..
发布时间:2020-05-19 00:45:51 移动开发

Objective-C中的快速枚举与NSEnumerator

我已经一遍又一遍地看到了这一点,为什么在循环中使用快速枚举比使用nextObject:来使用NSEnumerator更快呢? 解决方案 -countByEnumeratingWithState:objects:count: .此方法在objects输出参数中返回一个C对象数组,在count输出参数中返回一个计数器.这样,调用方就可以遍历C数组.从本质上讲,这意味着每个对象块调用一个消息,这 ..
发布时间:2020-05-19 00:37:18 移动开发

在不同类型的NSArray上快速枚举

我在此处(以及关于SO的其他疑问)和苹果公司有关Objective-C集合的文档中有这个问题和快速的枚举.还不清楚的是NSArray是否填充了不同的类型,并且是否创建了像这样的循环: for ( NSString *string in myArray ) NSLog( @"%@\n", string ); 这里到底发生了什么?循环会跳过不是NSString的任何内容吗?例如,如果 ..
发布时间:2020-05-19 00:29:28 移动开发

使用快速枚举和NSDictionary,不能保证按键的顺序迭代 - 我怎样才能按顺序进行迭代?

我正在与一个API进行通信,该API将我的应用所需的数据作为响应发送回NSDictionary(数据基本上是一个提要)。这些数据按最新到最旧排序,最新项目位于NSDictionary的前面。 当我用快速枚举它们时(文章中的NSString *键){...} 订单看似随机,因此我对它们进行操作的顺序不是从最新到最旧的顺序,就像我想要的那样,但是完全随机。 我已经读过了,当使用NSDict ..

检查数组是否包含另一个数组的相同对象的最快方法

目标是比较两个数组并检查它们是否包含相同的对象(尽可能快 - 数组中有很多对象)。无法使用 isEqual:检查数组,因为它们的排序方式不同。 我已尝试过此处发布的解决方案( https://stackoverflow.com/a/1138417 - 请参阅Peter Hosey发布的帖子的最后一个代码段。但这不适用于不同排序的数组。 我现在使用的代码如下: +(BOOL)ar ..
发布时间:2018-09-13 14:09:22 移动开发