Оператор If-Else триггер - PullRequest
0 голосов
/ 04 июля 2011

Я создаю приложение в iOS SDK, и пользователь должен ввести пароль для доступа к своему контенту. Я использую оператор If-Else для подтверждения их пароля. Проблема в том, что оператор If-else работает не так, как должен. Например: если пользователь вводит правильный пароль, то текст метки гласит: неверный пароль. Если пользователь вводит неправильный пароль, то текст метки гласит: Пароль правильный. Это полная противоположность того, что я хочу сделать. Вот мой код:

- (IBAction)isKeywordSecure:(id)sender {
    NSString *Key = [Keyword text];
    if ([Key compare:@"Password"]) {
        SecurityLevel.text=@"Keyword is Correct";
    } else {
        SecurityLevel.text=@"Keyword is WRONG";
    }
}

Что я сделал не так? Любая помощь будет оценена! Спасибо!

Ответы [ 2 ]

4 голосов
/ 04 июля 2011

Метод NSString compare:, как и почти все процедуры сравнения строк, возвращает ноль, если строки сравниваются равными (если быть точным, он возвращает NSOrderedSame, что равно нулю).

Вы можете заменитьесли условие с

if ([Key compare:@"Password"] == NSOrderedSame) {
    SecurityLevel.text=@"Keyword is Correct";

или вместо него использовать метод isEqualToString:.

Все это содержится в документации , с которой вам следует ознакомиться.

4 голосов
/ 04 июля 2011

Ознакомьтесь с документацией для -[NSString compare:]; он не возвращает логическое значение, а скорее NSComparisonResult. Возвращаемое значение равно нулю, если две строки равны, что эквивалентно NO. Вы должны использовать isEqualToString: вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...