1

有问题,这段代码

if ([g count] >= 1) {
     NSLog(@"%@", [g objectAtIndex:1]);
}

不断产生这个错误

reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

除非我快疯了,否则这不应该发生,对吧?

此时代码不是多线程的,我正在处理一个简单的数组。如果我对 g.count 进行 NSLog 记录,我得到的值为 1。

编辑:我也试过

if ([g count] > 0) {
     NSLog(@"%@", [g objectAtIndex:1]);
}

并得到同样的错误。

4

2 回答 2

3

count为 1 时,表示可以使用索引零。的索引1无效。

通常,只有从 0 到 (含)的索引count-1是有效的。

于 2012-06-03T12:56:37.173 回答
3

如果数组的计数 == 1 那么它只有索引 0 对吗?

正确的代码是

if ([g count] >= 2) {
     NSLog(@"%@", [g objectAtIndex:1]);
}

或者

if ([g count] >= 1) {
     NSLog(@"%@", [g objectAtIndex:0]);
}

取决于你需要什么索引。

于 2012-06-03T12:56:53.507 回答