NSMutableArray arrayWithCapacity问题

时间:2014-03-10 07:35:59

标签: ios objective-c cocoa

我很抱歉,好像这是一个愚蠢的问题。如果是,请发表评论,我将删除它,但这里是我的代码:

NumberedArray = [NSMutableArray arrayWithCapacity:50];
NSUInteger randomNumber = arc4random() % [NumberedArray count];
for (int i = 0; i<randomNumber; i++) {
    // Run some code
}

}

现在我收到错误:线程1:EXC_ARITHMETIC(代码= EXC_I386_DIV,子代码= 0X0)

所以我最好的猜测是机器变得混乱,因为我告诉它这个数组的容量为50,现在随机选择其中一个插槽并执行一些代码很长,因为循环小于这个随机选择的数字

但我真正想做的是让计算机根据随机选择的时间间隔运行代码。

这是一款游戏,此代码根据随机选择的时间间隔执行从左向右移动的敌人。这甚至是一种正确的方法吗?如果没有,我应该尝试什么呢?谢谢。

1 个答案:

答案 0 :(得分:2)

容量50并不意味着您的数组包含50个元素。它的计数为0.所以你执行除零,这就是它崩溃的原因。忘记使用arrayWithCapacity:initWithCapacity:,因为它并不意味着任何实际帮助。

更新:

如果您需要50的范围内的随机数,那么为什么不使用:

NSUInteger randomNumber = arc4random() % 50;

并像这样初始化你的数组:

numberedArray = [NSMutableArray array];