'if'条件适用于NSLog但不是没有? Objective-C的

时间:2010-06-29 18:28:48

标签: objective-c

我希望这个问题有些自我解释。

这有效,返回YES和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;

}

但是下面总是返回YES?唯一的区别是没有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 个答案:

答案 0 :(得分:1)

这两个代码块应该运行相同。您是否正在NSLog上查找/替换所有内容?这可能会导致其他地方出现问题,比如使用exammpleTest(sic)方法。

此外,第二行的三元运算符是多余的,请考虑将该行减少为:

BOOL result =  ([self exammpleTest] == 0);