您的位置:首页 > 移动开发 > IOS开发

iOS10 CAAnimationDelegate适配引申到条件编译

2016-12-06 00:00 316 查看
本文将围绕2个问题展开。

- iOS10 CAAnimationDelegate适配

- 条件编译

1、iOS10 CAAnimationDelegate适配



原因是动画的代理没有遵循协议。解决如下:



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

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

在@interface前加上。

#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之前的条件编译了。但是这样也有可能有问题,万一每次升级需要检查这个宏的值有没有变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios10 条件编译