每当我点击旋转时,它都会生成此错误并导致应用崩溃。在我上传图片视图之前,应用程序运行良好,旋转效果很好。我知道代码可能告诉我什么是错的,但我在理解这个问题时遇到了问题。
以粗体表示下面是它的生成
- (IBAction)spinAction:(id)sender {
[_chosenComponents removeAllObjects];
for (int i = 0; i < _componentsInPicker.count; i++) {
int randNum = arc4random() % [self.theSlotPicker numberOfRowsInComponent:i];
[_theSlotPicker selectRow:randNum inComponent: i animated:YES];
[_chosenComponents addObject:
[NSNumber numberWithInt:[(NSArray *)[_baseList objectAtIndex:i] indexOfObject:[(NSArray *)[_componentsInPicker objectAtIndex:i] objectAtIndex:randNum]]]];
}
NSLog(@"%@", _chosenComponents);
按下按钮/崩溃后吐出“线程1:EXC_ARITHMETIC(代码= EXC_1386_DIV,子代码= 0x0)”
如果可以,请指导我如何解决此错误。
谢谢!
输出错误:(lldb)
答案 0 :(得分:0)
发生此错误可能是因为当您使用arc4random() % .....
而不是使用arc4random() % n
使用arc4random_uniform(n)
。它将返回0到n范围内的数字。
然而,这不会解决
的固有问题 [self.theSlotPicker numberOfRowsInComponent:i]
在某个时间点返回零。