0

私はこの簡単なコードを持っています:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Contact" message:@"This contact does not exist yet" delegate:self cancelButtonTitle:@"Ok"  otherButtonTitles:@"Not now", nil];
[alert show];

デリゲートを「nil」に設定すると、すべて問題ありません。ただし、デリゲートを「self」に設定し、clickedButtonAtIndex または didDismissWithButtonIndex デリゲートを追加すると、アプリケーションが EXC_BAD_ACCESS でクラッシュします。

4

3 に答える 3

0

あなたの問題は、あなたのオブジェクト(自己)がもう存在しないことです!しかし、アラートビューはそれにアクセスしようとするため、EXC_BAD_ACCESS を取得します。デリゲート オブジェクト (自己) が生きているかどうかを確認してください!

于 2013-02-11T09:02:34.567 に答える
0

alertViewデリゲートメソッドを設定していないと思います。

まず、.h ファイルで alertView デリゲート プロトコルを設定します。

     @interface MainViewController : UIViewController<UIAlertViewDelegate>

次に、このメソッドを実装すると、正常に動作します

  -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
 {
   switch (buttonIndex)
  {
    case 0:

        break;
    case 1:
        break;

    default:
        break;
  }
}
于 2013-02-11T08:34:06.323 に答える