如何表明代码需要被删除...最终

时间:2012-12-18 17:29:09

标签: iphone ios ios6 backwards-compatibility

考虑一个需要与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;
}

如果没有,最好的选择是什么?

3 个答案:

答案 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.hAvailabilityInternal.h类。