Проверка для текстового поля в uialertview

Я показываю UIAlertView с UIAlertViewStylePlainTextInput стиль. Затем я пытаюсь проверить пустое поле следующим образом:

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

    if (buttonIndex == 1) {
        if ([[alertView textFieldAtIndex:0].text length] > 0 ||
            [alertView textFieldAtIndex:0].text != nil ||
            [[alertView textFieldAtIndex:0].text isEqual:@""] == FALSE)
        {
            NSLog(@"error");
        }
        else
        {
            [self postToServer];
        }
    } else {
        //close alertview
    }
}

Но он показывает мне сообщение об ошибке в журнале, даже если текстовое поле не пустое.

3 ответа

Решение

Это потому что ваш if заявление содержит

[[alertView textFieldAtIndex:0].text length] > 0

что означает, что если есть текст, то NSLog(@"error");Ваш if должен быть:

if ((![alertView textFieldAtIndex:0].text) || [[alertView textFieldAtIndex:0].text isEqual:@""])
{
      NSLog("error");
}

Вы можете использовать следующее

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

    if (buttonIndex == 1) {
        NSString *text = [alertView textFieldAtIndex:0].text;

        if([text isEqualToString:@""])
        {
            NSLog(@"empty");
        }
        else {
            NSLog(@"Not empty");
        }
    }
}

Прежде всего, у вас есть NSLog(@"error"); в области кода, которая будет истинной, если длина текстового поля больше 0. Это кажется противоположным тому, что вы хотите!!!

Попробуй это:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 1){
        if ([[alertView textFieldAtIndex:0].text length] > 0 ||                   
            [[alertView textFieldAtIndex:0].text isEqual:@""] == FALSE){
            [self postToServer];
        }else{
            NSLog(@"error");
        }
    }else{
        //close alertview
    }
}

Вам может не понадобиться длина больше нуля в этом операторе if, но если вы каким-то образом ожидаете невидимых символов, то, возможно, все будет в порядке, чтобы сохранить его!!!

Другие вопросы по тегам