«Если» условно работает с NSLog, но не без?Objective-C - PullRequest
0 голосов
/ 29 июня 2010

Я надеюсь, что этот вопрос кое-что говорит сам за себя.

Это работает, возвращает ДА ​​и НЕТ: обратите внимание на NSLog ()

- (BOOL)dateTestCourse:(NSDictionary *)listing {
    BOOL result =  ([self exammpleTest] == 0) ? YES : NO;
    if (result) {
        NSLog(@"Passes Test");
        return YES;
    }
    NSLog(@"Failed Test");
    return NO;

}

Нониже всегда возвращать ДА?Разница не только в NSLog ();

- (BOOL)dateTestCourse:(NSDictionary *)listing {
    BOOL result =  ([self exammpleTest] == 0) ? YES : NO;
    if (result) {
        // NSLog(@"Passes Test");
        return YES;

    }
    // NSLog(@"Failed Test");
    return NO;

}

Это как-то связано с C?Я понятия не имею?Я мог бы ожидать, что он всегда будет возвращать NO (если я не должен ломать условие), но, конечно, это вернет YES.

Я знаю, что должен возвращать результат в приведенных выше примерах, но яинтересно узнать почему.

1 Ответ

1 голос
/ 29 июня 2010

Эти два блока кода должны работать одинаково.Возможно, вы делаете поиск / замену всего на NSLog?Это может вызывать проблемы в других местах, например, с помощью метода exammpleTest (sic).

Кроме того, троичный оператор во второй строке является избыточным, рассмотрите возможность сокращения этой строки до:

BOOL result =  ([self exammpleTest] == 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...