supportedInterfaceOrientations

supportedInterfaceOrientations

我经常在Xcode 6和7之间切换,并且想要一种避免生成此类警告的方法。

实现中的返回类型冲突
'supportedInterfaceOrientations':'UIInterfaceOrientationMask'(aka
'enum UIInterfaceOrientationMask')vs'NSUInteger'(aka'unsigned
长')

我似乎无法使用同时满足两个版本的Xcode的类型。因此,我将实现一个预处理器宏,该宏的值取决于__IPHONE_9_0的值。

#ifdef __IPHONE_9_0
#define CompatibilityUserInterfaceMask  UIInterfaceOrientationMask
#else
#define CompatibilityUserInterfaceMask  NSUInteger
#endif

当我尝试执行此操作时,尽管出现构建错误。
- (CompatibilityUserInterfaceMask)supportedInterfaceOrientations { ... }

这是否可能,或者有人有其他想法来实现相同的结果吗?

最佳答案

据我所知,您的宏应该可以正常工作,但是如果您想要一种稍微不同的方法(可以说更难看):

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif

10-01 16:38