完整警告:
Implicit conversion from enumeration type 'UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation'让它上线:
[self orientationChanged:interfaceOrientation];方法如下:
- (void)orientationChanged:(UIInterfaceOrientation)interfaceOrientation 我真的不能理解这个警告是从哪里来的。
发布于 2011-08-11 02:22:59
UIDeviceOrientation指的是设备的物理方向,而UIInterfaceOrientation指的是用户界面的方向。当您调用方法时
[self orientationChanged:interfaceOrientation];根据该方法,当您应该使用UIInterfaceOrientation时,您最有可能向它传递一个UIDeviceOrientation。
在这一点上稍作扩展,UIDeviceOrientation是UIDevice类的一个属性,可能有以下值:
UIDeviceOrientationUnknown-无法确定
UIDeviceOrientationPortrait-主视图按钮朝下
UIDeviceOrientationPortraitUpsideDown-主视图按钮朝上
UIDeviceOrientationLandscapeLeft-向右的主页按钮
UIDeviceOrientationLandscapeRight-向左的主页按钮
UIDeviceOrientationFaceUp-设备是扁平的,屏幕朝上
UIDeviceOrientationFaceDown-设备是扁平的,屏幕朝下
至于UIInterfaceOrientation,它是UIApplication的一个属性,并且只包含4种对应于状态栏方向的可能性:
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft要获取UIDeviceOrientation,您可以使用
[[UIDevice currentDevice] orientation]要获得UIInterfaceOrientation,您可以使用
[[UIApplication sharedApplication] statusBarOrientation] https://stackoverflow.com/questions/7015709
复制相似问题