を使用してUIAlertViewいますが、次のエラー メッセージが表示されます。
* キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: 'textFieldIndex (0) はテキスト フィールドの配列の範囲外です'
しかしtextFields、私の中にはなく、UIAlertViewどこかにアクセスすることはありません...
これは私のコードです:
alertNewVersion = [[UIAlertView alloc] initWithTitle: @"Update"
                                            message: @"There is a new version"
                                            delegate: self
                                            cancelButtonTitle:@"OK"
                                            otherButtonTitles:@"Cancel",nil];
[alertNewVersion setAlertViewStyle:UIAlertViewStyleDefault];
alertNewVersion.tag = 1;
[alertNewVersion show];
ただし、「delegate:self」を「」に変更するdelegate:nilと、エラーでクラッシュすることはありませんが、もちろんデリゲート関数は機能しません...どのように問題が発生する可能性がありますか?
編集:
2 番目の UIAlertView:
- (IBAction)startPushed:(id)sender {
    message = [[UIAlertView alloc] initWithTitle:@"test."
                                        message:nil
                                        delegate:self
                                        cancelButtonTitle:nil
                                        otherButtonTitles:@"OK", nil];
    [message setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];
    [[message textFieldAtIndex:1] setSecureTextEntry:NO];
    [[message textFieldAtIndex:0] setPlaceholder:@"xx"];
    [[message textFieldAtIndex:1] setPlaceholder:@"xxx"];
    message.tag = 2;
    [message show];
}
委任方法:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if(alertView.tag == 1){ // alertNewVersion
    if (buttonIndex == 0) { //button "OK" clicked
       NSLog(@"test");
    }
}
if(alertView.tag == 2){ // Message
    if (buttonIndex == 0) { //button "OK" clicked
        NSString *Name = [[message textFieldAtIndex:0] text];
        [[NSUserDefaults standardUserDefaults] setObject:Name forKey:@"xx"]; 
        NSString *Class = [[message textFieldAtIndex:1] text];
        [[NSUserDefaults standardUserDefaults] setObject:Class forKey:@"xxx"]; 
    }
}
}