私のアプリには、入力された値が正しいかどうかを確認するボタンがあります。クラッシュすることもありますが、奇妙なことに、不規則な間隔で発生します (3 回目の反復で発生する場合もあれば、10 回目の反復で発生する場合もあれば、まったく発生しない場合もあります)。
デバッガーで EXC_BAD_ACCESS エラーが発生します。そのため、何かがリリースされるべきではないときにリリースされているようです。ボタンは次の関数を呼び出します。
- (IBAction)checkValue:(id)sender{
int actualDifference = [firstNumberString intValue] - [secondNumberString intValue];
actualDifferenceAsString = [NSString stringWithFormat:@"%d", actualDifference];
if ([answerTextField.text isEqualToString:actualDifferenceAsString])
{
UIAlertView *correctAlert = [[UIAlertView alloc] initWithTitle:@"matches"
message:@"next value."
delegate:nil
cancelButtonTitle:@"ok"
otherButtonTitles: nil];
[correctAlert show];
[correctAlert release];
}
else
{
UIAlertView *incorrectAlert = [[UIAlertView alloc]
initWithTitle:@"does not match"
message:@"next value."
delegate:nil
cancelButtonTitle:@"ok"
otherButtonTitles: nil];
[incorrectAlert show];
[incorrectAlert release];
}
最初のステートメントを指すゾンビを使用します。
int actualDifference = [firstNumberString intValue] - [secondNumberString intValue];
誰が問題が何であるか知っていますか?