Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
987 views
in Technique[技术] by (71.8m points)

objective c - Why does NSLog() not do anything if it's after a method's return?

I noticed that when my method runs, nothing is printed to the console:

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

but when I change the order of the statements:

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

the NSLog() does run.

Both versions compile, so why doesn't NSLog() seem to work in the first?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

return is the last statement that is executed in a function. After the return statement the function returns the control to the caller.

For example:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...