调用addObject时索引0超出空数组的边界?

时间:2013-05-05 00:47:30

标签: ios nsmutablearray

我有一个我正在初始化的NSMutableArray:

self.items = [[NSMutableArray alloc] init];

此时,数组为空。所以,我添加了一个像这样的对象:

NSString *string = @"Item one";
[self.items addObject:string];

但应用程序崩溃并抛出异常:

    *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -    [__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
(0x3460b3e7 0x3c306963 0x34556ef9 0xad7d 0x36465569 0x3644a391 0x36461827 0x3641d8c7 0x361c9513 0x361c90b5 0x361c9fd9 0x361c99c3 0x361c97d5 0x3642393f 0x345e0941 0x345dec39 0x345def93 0x3455223d 0x345520c9 0x3813133b 0x3646e2b9 0x7a15 0x3c733b20)
libc++abi.dylib: terminate called throwing an exception

我的问题是,我已经知道数组是空的,所以当我只是尝试填充它时为什么会崩溃?

1 个答案:

答案 0 :(得分:1)

例外情况,您在此处发布的代码中没有错误。小心完成例外

 **[__NSArrayM objectAtIndex:]**: index 0 beyond bounds for empty array

这不是因为[self.items addObject:string];
再次检查您的代码。 当items数组为空时,您在代码中的某处调用[self.items objectAtIndex:0]