90得票1回答
enumerateObjectsUsingBlock:方法中的BOOL *stop参数是用来做什么的?

最近我一直在使用enumerateObjectsUsingBlock:来进行快速枚举,但我对枚举块中BOOL *stop的用法感到困惑。 NSArray类参考文献中指出: stop: 指向布尔值的引用。块可以将该值设置为YES以停止数组的进一步处理。 stop参数是一个仅输出的参数。...

44得票2回答
对空对象进行快速枚举

这里应该发生什么?是安全的吗?NSArray *nullArray=nil; for (id obj in nullArray) { // blah } 更具体地说,我必须这样做吗:NSArray *array=[thing methodThatMightReturnNil]; if (a...

33得票2回答
Objective-C中的快速枚举是否保证迭代顺序?

我是否可以期望它按顺序从数组的开头到结尾进行遍历?在文档中找不到任何关于这个问题的信息。 即,for (id val in array) { NSLog(@"%@", val); } 始终会打印相同的内容for (int i = 0; i < [array count]; ++i...

31得票2回答
循环遍历子视图以检查空的UITextField - Swift

我想知道如何将下面的Objective-C代码转换成Swift。 这段代码将循环遍历所需视图上的所有子视图,检查它们是否是文本字段,然后检查它们是否为空。for (UIView *view in contentVw.subviews) { NSLog(@"%@", view); ...

29得票6回答
在快速枚举中跟踪索引

我想在使用快速枚举时获取当前对象的索引,即 for (MyClass *entry in savedArray) { // What is the index of |entry| in |savedArray|? }

24得票10回答
如何快速检查一个数组是否包含另一个数组中的相同对象

目标是比较两个数组并检查它们是否包含相同的对象(尽可能快速-这两个数组中有很多对象)。由于它们的排序方式不同,因此无法使用isEqual:来检查数组。 我已经尝试了在这里发布的解决方案(https://dev59.com/-XM_5IYBdhLWcg3w-4nw#1138417-请参见Pet...

23得票2回答
如何实现NSFastEnumeration协议?

我有一个类,我希望我的类符合NSFastEnumeration协议。我已经阅读了文档,但并不是很清楚。请问有人可以告诉我这个协议方法应该返回什么以及它如何工作吗?

13得票3回答
使用快速枚举和NSDictionary进行按键排序迭代没有得到保证 - 我该如何使其有序?

我正在与一个API通信,它将一个NSDictionary作为响应数据发送回来给我所需的应用程序数据(即一个feed)。这些数据按照最新到最旧的顺序排序,最新的项目在NSDictionary的前面。 当我使用for (NSString *key in articles) { ... }进行快速...

11得票4回答
Objective-C中的“for each”(快速枚举)-- 集合的评估?

从实验来看,集合表达式只被评估一次。考虑下面的例子:static NSArray *a; - (NSArray *)fcn { if (a == nil) a = [NSArray arrayWithObjects:@"one", @"two", @"three", ...

11得票3回答
Objective-C中的快速枚举和NSEnumerator

我一再看到这个问题,为什么在循环中使用快速枚举比使用NSEnumerator的nextObject:更快呢。