objective-c - 对 nil 对象进行快速枚举

标签 objective-c fast-enumeration

这里应该发生什么?安全吗?

NSArray *nullArray=nil;
for (id obj in nullArray) {
  // blah
}

更具体地说,我是否必须这样做:

NSArray *array=[thing methodThatMightReturnNil];
if (array) {
  for (id obj in array) {
    // blah
  }
}

或者这样好吗?:

for (id obj in [thing methodThatMightReturnNil]) {
  // blah
}

最佳答案

快速枚举通过-countByEnumeratingWithState:objects:count:方法实现,返回0表示循环结束。由于 nil 为任何方法返回 0,因此您的循环永远不应执行。 (所以它是安全的。)

关于objective-c - 对 nil 对象进行快速枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7849957/

相关文章:

objective-c - JSON Payload 似乎没有发送

objective-c - MKAnnotation 未在 MKMapView 上显示标注

ios - 带有 setter/getter 的 EXC_BAD_ACCESS

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

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

objective-c - 用于在 NSMutableArray 崩溃中删除项目的快速枚举

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

objective-c - Objective-C 中的快速枚举与 NSEnumerator

ios - 获取 "Aspect ratio constraints with Xcode versions prior to 5.1"错误

iphone - 可滚动位置后窗口的背面