4

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

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

4

3 回答 3

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 或更高版本,此代码将导致编译器警告。

于 2012-12-18T17:47:36.323 回答
1

#define MY_CONDITIONAL_DEPRECATED_ATTRIBUTE __deprecated

在所有方法上使用它,但直到你需要它让它安静

#define MY_CONDITIONAL_DEPRECATED_ATTRIBUTE

于 2012-12-18T17:47:27.977 回答
0

考虑看看 Apple 如何在其框架类中标记这类东西。似乎他们正在使用 SDK 中的Availability.hAvailabilityInternal.h类。

于 2012-12-18T17:46:35.000 回答