NSMutableArray EXC_BAD_ACCESS(代码= 1)

时间:2012-05-21 10:06:18

标签: objective-c xcode

我不知道为什么,但我的NSMutableArray'项目'不会超过5个元素。

有人可以帮忙吗?我正在关注Big Nerd Ranch iOS编程书。

此代码可以正常工作:

NSMutableArray *items = [[NSMutableArray alloc] init];
for (int i = 5; i < 10; i++) {
    BNRItem *p = [BNRItem randomItem];
    [items addObject:p];
}

但是,如果我将i的初始值更改为4或更小,程序在退出for循环时崩溃:

NSMutableArray *items = [[NSMutableArray alloc] init];
for (int i = 4; i < 10; i++) {
    BNRItem *p = [BNRItem randomItem];
    [items addObject:p];
}

错误截图:http://db.tt/3CdueSYh

2 个答案:

答案 0 :(得分:7)

更改您的

NSArray *randomNounList = [NSArray arrayWithObjects:@"Bear", @"Spork", "Mac", nil];

为:

NSArray *randomNounList = [NSArray arrayWithObjects:@"Bear", @"Spork", @"Mac", nil];

您在@

之前忘记了"Mac"

希望有所帮助

答案 1 :(得分:3)

在您在评论中发布的屏幕截图中,您正在向"Mac"数组中添加一个C字符串randomNounList。您需要使用@符号将其设为NSString。

我怀疑随机选择此条目时会发生崩溃。

我对此编译感到惊讶,我怀疑你忽略了一些警告。