理解方法使用!=返回BOOL

时间:2011-05-15 16:16:12

标签: objective-c ios return-value boolean

这是关于视图控制器的shouldAutoRotateToInterfaceOrientation方法中return语句的语法的一个相当基本的问题。

为了允许除了颠倒的肖像模式之外的所有视图,我实现了以下代码块:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

返回声明究竟在做什么?我知道它返回一个布尔变量,但它是如何确定是返回true还是false?这是return语句中的一种隐式if语句吗?即将:

-    (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    if (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown)
        return YES;
}

技术上是相同的,只是更明确地说明了?

感谢您的澄清!

1 个答案:

答案 0 :(得分:8)

(something != something_else)之类的比较结果是BOOL值。如果比较结果为true,则表达式(....)采用值YES(与TRUE相同)。

这不是隐式转换,而是比较的工作方式。