代码之家  ›  专栏  ›  技术社区  ›  Ross

“if”条件与nslog一起使用,但不能不使用?目标-C

  •  0
  • Ross  · 技术社区  · 16 年前

    我希望这个问题有些不言自明。

    此操作有效,返回是和否: 注意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有关吗?我不知道?我可能期望它总是返回“否”(如果我不应该违背条件),但肯定会返回“是”。

    我知道我应该在上面的例子中返回结果,但我很好奇为什么。

    1 回复  |  直到 16 年前
        1
  •  1
  •   James J    16 年前

    这两块代码应该运行相同的代码。您可能在nslog上执行查找/替换全部操作吗?这可能会在其他地方引起问题,比如使用exammpletest(sic)方法。

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

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