IOS判断版本之编译期和运行时
来源:互联网 发布:hadoop数据挖掘实例 编辑:程序博客网 时间:2024/05/29 09:52
最近的一些小感悟,每次开发的时候都会不记得什么时候用编译期ios版本区分,什么时候用运行时ios版本区分。决定写下来下次就记得了!
编译期IOS版本判断:
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 60000 //xcode baseSDK为6.0或者以上#else //xcode baseSDK为6.0以下的#endif
编译期的版本判断是指在编译代码是XCode的sdk环境,这里就是指baseSDK的版本(xcode 5 是 IOS 7.0),有一些在编译的时候就可以区分的就用这个办法区分版本,比如文字对齐的枚举NSTextAligment(IOS6以后)和UITextAligment(IOS6以前) 这种枚举类型 在编译期的时候编译期就会替换,可以在代码里用上面这种办法保证你的代码高版的的xcode下不出warning,同时在低版本的xcode下也能编译。
运行时IOS版本判断:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0) {//设备系统为IOS 5.0或者以上的}else{//设备系统为IOS 5.0以下的}
运行时判断版本用最普遍的就是应用需要适配低版本的IOS系统。比如一个新API在IOS6以后才出现,这种时候就要使用运行时的判断方法。当运行在IOS6系统的时候,调用新API。运行在IOS6以下系统的时候,调用低版本替代的函数(可能是自己实现,可能是不处理)
如果app的代码用了IOS6.0后出现的新API,代码中区分版本的时候用了编译期区分版本的方法。在有IOS 6.0 sdk的xcode环境下能编译通过,但是当app运行在IOS6.0以下的系统,并且调用到这个新API的时候会崩溃。因为IOS6.0以下的系统没有这个API的声明和实现。 这种情况就应该用运行时判断版本的办法。
以上都是个人理解,有不对的欢迎纠正~嘿
0 0
- IOS判断版本之编译期和运行时
- ios 编译期和运行期
- 运行期断言和编译期断言
- 编译期优化和运行期优化
- 编译期和运行期区别
- Java编译期和运行期 & JVM
- java编译期和运行期优化
- JVM学习笔记十一 之 编译期优化和运行期优化
- C++ 函数运行期和编译期运行
- c++有关编译期和运行期的访问
- java中的编译期和运行期有什么区别?
- c++有关编译期和运行期的访问
- c++有关编译期和运行期的访问
- C++中多态如何在编译期和运行期实现
- 关于编译期和运行期一些理解
- 编译期异常和运行期异常的区别
- 编译期与运行期
- 编译期与运行期
- C# 打印整个窗体(不包括边栏)
- 制作一体化的安装包
- GIS制作地理底图/变化监测
- hive理解streamtable使用
- 云计算阅读笔记
- IOS判断版本之编译期和运行时
- c#派生类继承构造函数
- FLEX 与 .net wcf /web services通信
- Visual Studio源码管理器Team Foundation Service
- Visual Studio源码管理器Team Foundation Service
- 源代码管理:TFS
- 源代码管理:TFS
- Silverlight+WCF双工通信开发聊天室精简版服务器端代码
- Silverlight+WCF双工通信开发聊天室精简版服务器端代码