为什么NSLog()在方法返回后没有做任何事情?

时间:2012-05-07 13:07:17

标签: objective-c return

我注意到当我的方法运行时,没有任何内容打印到控制台:

- (BOOL)theTemporyFunction
{
    return YES;
    NSLog(@"Events");
}

但是当我改变陈述的顺序时:

- (BOOL)theTemporyFunction
{
    NSLog(@"Events");
    return YES;
}

NSLog()确实在运行。

两个版本都编译,为什么NSLog()似乎不能在第一个版本中运行?

2 个答案:

答案 0 :(得分:6)

return是函数中执行的最后一个语句。 return statement函数控件返回给调用者后。

例如:

function1                                      function2
int x;
function2();-----------------------------+
                                         +---->puts("function2 - should be called");
                                         +-----return;
puts("back to function1");<--------------+     puts("should not be called");

答案 1 :(得分:3)

你真的需要学习编程基础.. return - 正如它所说 - 你从方法执行返回到前一个上下文&gt;&gt;你现在要离开这个方法了。