我经常在
Xcode 6和7之间转换,并想要一种方法来避免像这样的构建警告.
Conflicting return type in implementation of
‘supportedInterfaceOrientations’: ‘UIInterfaceOrientationMask’ (aka
‘enum UIInterfaceOrientationMask’) vs ‘NSUInteger’ (aka ‘unsigned
long’)
我似乎无法使用同时满足两个版本的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