使用局部变量访问数组索引时出错
Error with using local variable to access array index
出于某种原因,每次我尝试通过在 forloop 的索引中指定变量 int 来访问数组中的特定索引时,都会发生这种情况。当我这样做时,我得到一个线程 1 错误,但是如果我使用一个没有在 forloop 本身中声明的变量,它似乎工作正常。
代码:
for(int i =0 ; i<= [array count]; i++) {
NSNumber *convert = [array objectAtIndex:i]; //results in error
NSLog(@"%i", [convert intValue]);
}
问题是您试图访问超出其容量的数组。数组从 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]);
}
出于某种原因,每次我尝试通过在 forloop 的索引中指定变量 int 来访问数组中的特定索引时,都会发生这种情况。当我这样做时,我得到一个线程 1 错误,但是如果我使用一个没有在 forloop 本身中声明的变量,它似乎工作正常。 代码:
for(int i =0 ; i<= [array count]; i++) {
NSNumber *convert = [array objectAtIndex:i]; //results in error
NSLog(@"%i", [convert intValue]);
}
问题是您试图访问超出其容量的数组。数组从 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]);
}