Objective c Xcode:获取警告“;枚举类型UIDeviceOrientation的隐式转换;
全面警告:Objective c Xcode:获取警告“;枚举类型UIDeviceOrientation的隐式转换;,objective-c,xcode,uiinterfaceorientation,Objective C,Xcode,Uiinterfaceorientation,全面警告: Implicit conversion from enumeration type 'UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation' 让它上线: [self orientationChanged:interfaceOrientation]; 方法如下: - (void)orientationChanged:(UIInterfaceOrientation)interfaceOri
Implicit conversion from enumeration type 'UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation'
让它上线:
[self orientationChanged:interfaceOrientation];
方法如下:
- (void)orientationChanged:(UIInterfaceOrientation)interfaceOrientation
我真的不明白这个警告是从哪里来的。UIDeviceOrientation指的是设备的物理方向,而
UIInterfaceOrientation
指的是用户界面的方向。当你调用你的方法时
[self orientationChanged:interfaceOrientation];
根据该方法,当您应该使用UIInterfaceOrientation
时,您很可能正在向其传递UIDeviceOrientation
仅对这一点进行一点扩展,UIDeviceOrientation
是UIDevice
类的一个属性,有以下可能的值:
UIDeviceOrientationUnknown
-无法确定
ui设备方向纵向
-主页按钮朝下
UIDeviceOrientationGraphics UpsideDown
-主页按钮面朝上
UIDeviceOrientation和scapeLeft
-主页按钮朝向右侧
UIDeviceOrientationAndscapeRight
-主页按钮朝向左侧
UIDeviceOrientationFaceUp
-设备是平面的,屏幕朝上
UIDeviceOrientationFaceDown
-设备是平面的,屏幕朝下
对于UIInterfaceOrientation
,它是UIApplication
的一个属性,只包含4种可能,对应于状态栏的方向:
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
要获取UIDeviceOrientation
,请使用
[[UIDevice currentDevice] orientation]
[[UIApplication sharedApplication] statusBarOrientation]
要获得UIInterfaceOrientation
,您可以使用
[[UIDevice currentDevice] orientation]
[[UIApplication sharedApplication] statusBarOrientation]
又碰到这个问题,你又救了我。我希望我能投你两次票。