使用局部变量访问数组索引时出错

时间:2015-10-16 08:44:28

标签: objective-c arrays for-loop local-variables

出于某种原因,每当我尝试通过在forloop中的索引中指定变量int来从数组中访问特定索引时,就会发生这种情况。当我这样做我得到一个线程1错误,但如果我使用一个未在forloop本身声明的变量,它似乎工作正常。 代码:

for(int i =0 ; i<= [array count]; i++) {
    NSNumber *convert = [array objectAtIndex:i]; //results in error
    NSLog(@"%i", [convert intValue]);
   }

1 个答案:

答案 0 :(得分:1)

问题是你试图访问超出其容量的阵列。数组以0索引开头,最高为array.count - 1。也就是说,请尝试下面的代码,你应该是好的:

for (int i = 0 ; i <= array.count - 1 ; i++) {
    NSNumber *convert = [array objectAtIndex:i];
    NSLog(@"%i", [convert intValue]);
}

另一种变化可能是:

for (int i = 0 ; i < array.count ; i++) {
    NSNumber *convert = [array objectAtIndex:i];
    NSLog(@"%i", [convert intValue]);
}