iOS后向兼容:如何发现过期接口
2023-09-27 14:23:51 时间
以4.3以下兼容性为例,在项目预编译头文件(xx.pch)中加入如下代码:
#import <Availability.h> #define __AVAILABILITY_INTERNAL__IPHONE_3_2 __AVAILABILITY_INTERNAL_DEPRECATED #define __AVAILABILITY_INTERNAL__IPHONE_4_0 __AVAILABILITY_INTERNAL_DEPRECATED #define __AVAILABILITY_INTERNAL__IPHONE_4_1 __AVAILABILITY_INTERNAL_DEPRECATED #define __AVAILABILITY_INTERNAL__IPHONE_4_2 __AVAILABILITY_INTERNAL_DEPRECATED #define __AVAILABILITY_INTERNAL__IPHONE_4_3 __AVAILABILITY_INTERNAL_DEPRECATED
然后,编译程序,在warning中会列出不再支持的方法,逐个检查,在可能引起程序crash的地方,加入 if ( [xx respondToSelector:(deprecatedMethod)] ) { ... } 判断。
也可以加入如下代码将warning变成error:
#import <Availability.h> #define __AVAILABILITY_INTERNAL__IPHONE_3_2 __AVAILABILITY_INTERNAL_UNAVAILABLE #define __AVAILABILITY_INTERNAL__IPHONE_4_0 __AVAILABILITY_INTERNAL_UNAVAILABLE #define __AVAILABILITY_INTERNAL__IPHONE_4_1 __AVAILABILITY_INTERNAL_UNAVAILABLE #define __AVAILABILITY_INTERNAL__IPHONE_4_2 __AVAILABILITY_INTERNAL_UNAVAILABLE #define __AVAILABILITY_INTERNAL__IPHONE_4_3 __AVAILABILITY_INTERNAL_UNAVAILABLE
不兼容的方法会以编译错误列出。
参考:http://stackoverflow.com/questions/7790497/iphone-app-developed-with-sdk-4-2-requires-backward-compatibility-with-ios-3-1
另外这个不错:
iOS Support Matrix
http://iossupportmatrix.com/versions/summer-2013-version-2-4-1
相关文章
- iOS问题处理:如何在Mac下显示Finder中的所有文件
- WebRTC系列---iOS平台接口介绍及demo示例(2)
- WebRTC系列---iOS平台接口介绍及demo示例(1)
- 浅谈iOS Crash(二)
- iOS 键盘挡住UITextField
- ios之归档demo
- cmake编译iOS/android/mac的opencv库(八)
- iOS开发基础知识--碎片9
- 李洪强iOS开发之-环信02.3_具体接口讲解 - Apple Docs
- 李洪强漫谈iOS开发[C语言-004]-开发概述程序设计语言程序编译过程
- iOS开发多线程篇 10 —NSOperation基本操作
- iOS开发Swift篇—(四)运算符
- React-Native 工程添加推送功能 (iOS 篇)
- iOS-上传头像的使用
- 使用AudioServices相关接口(底层c接口)的连续震动实现(ios)