警告:从枚举类型“UIInterfaceOrientation”到不同枚举类型“UIDeviceOrientation”的隐式转换?
Posted
技术标签:
【中文标题】警告:从枚举类型“UIInterfaceOrientation”到不同枚举类型“UIDeviceOrientation”的隐式转换?【英文标题】:warning : Implicit conversion from enumeration type ' UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation'? 【发布时间】:2011-10-19 00:39:50 【问题描述】:在这一行:[self deviceInterfaceOrientationChanged:interfaceOrientation];
我收到此警告
Implicit conversion from enumeration type ' UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation'?
你能帮帮我吗?拜托。谢谢你
代码如下:
-(void) receivedRotate: (NSNotification*) 通知 NSLog(@"receivedRotate"); UIDeviceOrientation interfaceOrientation = [[UIDevice currentDevice] 方向]; 如果(接口方向!= UIDeviceOrientationUnknown) [self deviceInterfaceOrientationChanged:interfaceOrientation]; 别的 NSLog(@"未知设备方向");【问题讨论】:
参考以下帖子。它完美地回答了它。 [*** 帖子][1] [1]:***.com/questions/7015709/… 【参考方案1】:UIDeviceOrientation 和 UIInterfaceOrientation 是不同的类型,第一个是设备方向,包括其他状态,例如 Face up 或 Face Down 等,而第二个仅涵盖 2D 状态,例如 Portrait 和 Landscape。
不要从设备获取设备方向,而是从状态栏获取,如下所示:
[[UIApplication sharedApplication] statusBarOrientation]
这个方法会返回一个 UIInterfaceOrientation 值,问题就会消失。
【讨论】:
viewWillTransitionToSize 不依赖于方向,而是依赖于在某个事件之后应用视图的大小将如何更改,这抽象了方向的使用,并且可能还包括其他类型的事件。如果您想遵循该范例,使用任何类型的方向代码都是错误的。以上是关于警告:从枚举类型“UIInterfaceOrientation”到不同枚举类型“UIDeviceOrientation”的隐式转换?的主要内容,如果未能解决你的问题,请参考以下文章
在 GCC 中使用不同枚举类型分配或执行算术时如何发出警告?