我已经下载了XCode 8.2beta
,为了修复项目中的警告,我不得不将以下protocol
添加到header file
中:CAAnimationDelete仅在iOS 10中可用。
问题是,通过只添加协议,项目无法在10之前的iOS versions
上编译,所以我添加了以下检查:
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_3
@interface CheckTest : UIView <CAAnimationDelegate>
#else
@interface CheckTest : UIView
#endif
这是正确的做法吗?
2条答案
按热度按时间9ceoxa921#
我相信你对守卫宏的使用是正确的,只有一个小改动;你想检查你是否在为iOS 10+编译,所以在宏中测试一下:
不要忘记使用相同的保护宏保护
CAAnimationDelegate
方法实现。如果你在很多类中这样做,那么在你的预编译头中这样做可能会更方便:
并将保护宏更改为:
ne5o7dgx2#
你可以在Objective-C头文件中这样做。