0

入力したテキストをWebサービス統合に渡すために、テキストフィールドでuialertviewを使用する必要があります。アプリケーションが実行されている間、テキストフィールドでアラートビューが表示され、テキストフィールドにテキストを入力できますが、送信ボタンをクリックすると、それぞれのクラスクラッシュしましたが、戻るボタンとアプリケーション全体は正常に動作しています。

テキストフィールド付きのアラートビューに使用したコード、

{
            //alertview with textfield
           UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Enter your changes"
             message:nil
             delegate:self
             cancelButtonTitle:@"Cancel"
             otherButtonTitles:@"Submit Changes", nil];
             [message setAlertViewStyle:UIAlertViewStylePlainTextInput];
             [message show];
}


- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex

{
    if (buttonIndex == 1)

    {
       text = [[alertView textFieldAtIndex:0] text];

        NSLog(@"passed value %@",text);

    }
}
4

2 に答える 2

0

そのコードはどこに配置されていますか?これ以上の文脈がなければ、これら 2 つの推測は暗闇の中のショットですが、よくある落とし穴です。

私の最初の推測では、このオブジェクト (アラート ビューのデリゲート) は、ダイアログが閉じられたときに既に死んでいるということです。また、デリゲートが割り当てられているため、デッド オブジェクトで呼び出され、クラッシュにつながります。

もう 1 つの考えられる理由は、コードがクラス メソッド内にあること+(void)showMessage;です。次に、デリゲートをクラスに設定しますが、オブジェクトには設定しません。これにより、クラッシュもトリガーされます。

于 2013-08-20T16:37:06.593 に答える