NSArray字符串文字的快速枚举

时间:2012-03-09 17:05:01

标签: objective-c fast-enumeration

使用ARC ......

NSArray *array = [NSArray arrayWithObjects:@"dog", @"cat", @"mouse", nil];

for(NSString *animal in array) {
    NSLog(@"animal = %@", animal);
}

产生超出范围的索引错误。

  

*** - [__ NSArrayM objectAtIndex:]:索引0超出空数组的界限

我犯了什么骨头错误?

1 个答案:

答案 0 :(得分:1)

您展示的代码很好。我刚刚在ARC下运行它并成功完成。您确定错误是针对该代码而不是代码的其他部分吗?

我想到了几个想法:变量'array'非常通用。它是否干扰了其他本地/实例变量?如果代码紧挨着彼此并不重要,但是如果你已经在一个地方声明它并且正在另一个地方执行for循环,那么你可能没有按照你的想法执行相同的“数组”。将此代码隔离在另一个类/方法/中,然后查看它是如何运行的。

另一个想法:快速枚举不会枚举零长度数组(它首先检查)。这就是为什么我认为你错误地将错误误认为是错误的代码行。