iOS10 CAAnimationDelegate适配引申到条件编译
2016-12-06 00:00
316 查看
本文将围绕2个问题展开。
- iOS10 CAAnimationDelegate适配
- 条件编译
1、iOS10 CAAnimationDelegate适配
原因是动画的代理没有遵循协议。解决如下:
以为万事大吉?在X-code7打开运行编译报错。ios10之前写动画的协议方法,不需要去遵循系统的动画代理。
2、此问题引申开来的条件编译。利用__IPHONE_OS_VERSION_MAX_ALLOWED系统宏进行条件编译
在@interface前加上。
但是在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 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之前的条件编译了。但是这样也有可能有问题,万一每次升级需要检查这个宏的值有没有变化。
相关文章推荐
- #line、几个常见C语言预处理和条件编译
- Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案
- #ifndef条件编译
- C#条件编译不按条件走
- VC2010 中使用条件编译判断是32位还是64位编译模式
- 宏条件编译
- C++编程->条件编译
- 条件编译#ifdef MACRO_A和#if defined(MACRO_A)的区别
- C 08 C语言的编译过程 条件编译和宏
- 条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法
- #if #elif #endif 的使用--------条件编译(conditional compilation)
- [AIR] as3 之条件编译多平台妙用
- 提高C#编程水平的50个要点 之四“使用条件属性 (Conditional Attributes) 来代替条件编译语句 #if”
- IOS小知识点6之条件编译、Log系统、重命名、CocoaLumberjack、NSLogger、函数调用堆栈
- 条件编译
- 【原创】头文件、宏定义、条件编译、避免头文件重复包含
- Qt中实现条件编译
- 条件编译的用途
- FB AS3 中,使用条件编译,实现debug、release的代码分离编译。
- rust条件编译