使用ARC ......
NSArray *array = [NSArray arrayWithObjects:@"dog", @"cat", @"mouse", nil];
for(NSString *animal in array) {
NSLog(@"animal = %@", animal);
}
产生超出范围的索引错误。
*** - [__ NSArrayM objectAtIndex:]:索引0超出空数组的界限
我犯了什么骨头错误?
答案 0 :(得分:1)
您展示的代码很好。我刚刚在ARC下运行它并成功完成。您确定错误是针对该代码而不是代码的其他部分吗?
我想到了几个想法:变量'array'非常通用。它是否干扰了其他本地/实例变量?如果代码紧挨着彼此并不重要,但是如果你已经在一个地方声明它并且正在另一个地方执行for循环,那么你可能没有按照你的想法执行相同的“数组”。将此代码隔离在另一个类/方法/中,然后查看它是如何运行的。
另一个想法:快速枚举不会枚举零长度数组(它首先检查)。这就是为什么我认为你错误地将错误误认为是错误的代码行。