这是一个关于简单的UIInterfaceOrientation对象的返回值的一个相当基本的问题,我试试这段代码:
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
BOOL orientacion = interfaceOrientation;
return orientacion;
}
并且转换完成了,所以我认为UIInterfaceOrientation对象等于布尔值var ??是一个隐含的拼写错误或真正的UIInterfaceOrientation等于布尔值..
答案 0 :(得分:6)
UIInterfaceOrientation
是enum
,这实质上意味着它是一个整数。整数可以分配给布尔值。许多事情都可以 - 布尔人简单地等同于真或假。如果布尔值设置为0
或nil
,则为false。如果它设置为任何而不是0
或nil
(或其他#define
d等效物),那么它将是真的。由于UIInterfaceOrientation是枚举(整数),如果它等于0,则布尔值将为false。如果它不是0,那就是真的。
UIInterfaceOrientation
:
typedef enum {
UIDeviceOrientationUnknown,
UIDeviceOrientationPortrait, // Device oriented vertically, home button on the bottom
UIDeviceOrientationPortraitUpsideDown, // Device oriented vertically, home button on the top
UIDeviceOrientationLandscapeLeft, // Device oriented horizontally, home button on the right
UIDeviceOrientationLandscapeRight, // Device oriented horizontally, home button on the left
UIDeviceOrientationFaceUp, // Device oriented flat, face up
UIDeviceOrientationFaceDown // Device oriented flat, face down
} UIDeviceOrientation;
此列表中的第一个将等于0
。下一个1
,下一个2
等等。因此UIDeviceOrientationUnknown
会将布尔值设置为false;其他任何东西都会把它设置为真。
在任何情况下,您都没有正确使用此功能。此函数中的代码需要读取:
if((interfaceOrientation == someOrientationYouWantToWork) || (interfaceOrientation == someOtherOrientationYouWantToWork)
{
return YES;
}
else
{
return NO;
}
将someOrientationYouWantToWork
等设置为我在上面发布的枚举中的值。无论您想要使用哪种方向,都要返回YES
。否则它将返回NO
。
答案 1 :(得分:1)
它不是布尔值,而是枚举值 - 如果它不是0,则默认为布尔值“YES”,否则为“NO”。