我经常在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