iOS10 CAAnimationDelegate适配引伸到条件编译

本文将围绕2个问题展开。ios

- iOS10 CAAnimationDelegate适配xcode

- 条件编译动画

一、iOS10 CAAnimationDelegate适配代理

缘由是动画的代理没有遵循协议。解决以下:code

觉得万事大吉?在X-code7打开运行编译报错。ios10以前写动画的协议方法,不须要去遵循系统的动画代理。io

二、此问题引伸开来的条件编译。利用__IPHONE_OS_VERSION_MAX_ALLOWED系统宏进行条件编译编译

在@interface前加上。class

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0

@interface ViewController () <CAAnimationDelegate>

#else

@interface ViewController ()

#endif

可是在X-code7运行依旧报错,缘由是由于__IPHONE_10_0在之前版本的X-code中根本不存在。#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0这句在xcode8以前的版本上运行,是个恒成立的条件。。。条件编译的限制也就失去了原本的意义。__IPHONE_10_0这个宏也就是一个数字:100000。因此把__IPHONE_10_0用100000代替酒能够解决适配Ios10以前的条件编译了。可是这样也有可能有问题,万一每次升级须要检查这个宏的值有没有变化。object

相关文章
相关标签/搜索