考虑一个需要与iOS 5和iOS 6兼容的应用。
有没有办法标记纯粹用于iOS 5兼容性的代码,以便在最初 - 部署目标更改为iOS 6时,它显示为编译错误(或警告)?
这样的事情:
#IF_DEPLOYMENT_TARGET_BIGGER_THAN_IOS_5
#OUTPUT_ERROR_MESSAGE
#ENDIF
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
如果没有,最好的选择是什么?
答案 0 :(得分:3)
试试这个:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
#warning This pre-6.0 code isn't needed anymore
#endif
- (BOOL)shouldAutorotateToInterfaceOrientation(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}
一旦部署目标设置为6.0或更高版本,此代码将导致编译器警告。
答案 1 :(得分:1)
#define MY_CONDITIONAL_DEPRECATED_ATTRIBUTE __deprecated
在所有方法上使用它但直到你需要它变得安静
#define MY_CONDITIONAL_DEPRECATED_ATTRIBUTE
答案 2 :(得分:0)
考虑一下Apple如何在他们的框架类中标记出那种东西。他们似乎正在使用SDK中的Availability.h
和AvailabilityInternal.h
类。