我希望这个问题有些自我解释。
这有效,返回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。
我知道我应该在上面的例子中返回结果,但我很想知道原因。
答案 0 :(得分:1)
这两个代码块应该运行相同。您是否正在NSLog上查找/替换所有内容?这可能会导致其他地方出现问题,比如使用exammpleTest(sic)方法。
此外,第二行的三元运算符是多余的,请考虑将该行减少为:
BOOL result = ([self exammpleTest] == 0);