我很抱歉,好像这是一个愚蠢的问题。如果是,请发表评论,我将删除它,但这里是我的代码:
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,现在随机选择其中一个插槽并执行一些代码很长,因为循环小于这个随机选择的数字
但我真正想做的是让计算机根据随机选择的时间间隔运行代码。
这是一款游戏,此代码根据随机选择的时间间隔执行从左向右移动的敌人。这甚至是一种正确的方法吗?如果没有,我应该尝试什么呢?谢谢。
答案 0 :(得分:2)
容量50并不意味着您的数组包含50个元素。它的计数为0.所以你执行除零,这就是它崩溃的原因。忘记使用arrayWithCapacity:
或initWithCapacity:
,因为它并不意味着任何实际帮助。
更新:
如果您需要50的范围内的随机数,那么为什么不使用:
NSUInteger randomNumber = arc4random() % 50;
并像这样初始化你的数组:
numberedArray = [NSMutableArray array];