0

スピンをクリックするたびに、このエラーが生成され、アプリがクラッシュします。画像ビューをアップロードする前に、アプリは正常に動作し、回転も良好です。コードがおそらく何が悪いのかを教えてくれていることは知っていますが、これを理解するのに問題があります。

以下に太字で示されているのは、それが生成するものです

- (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 (code=EXC_1386_DIV,subcode=0x0)」

このエラーを修正する方法を教えていただければ幸いです。

ありがとうございました!


出力エラー: (lldb)

4

1 に答える 1

0

このエラーは、使用しているときにゼロ除算が発生したために発生している可能性がありますarc4random() % .....

arc4random() % nuseを使用する代わりにarc4random_uniform(n). 0 から n の範囲の数値を返します。

ただし、これは固有の問題を解決しません。

[self.theSlotPicker numberOfRowsInComponent:i]ある時点でゼロを返しています。

于 2013-03-15T18:40:32.220 に答える