zoukankan      html  css  js  c++  java
  • iOS后向兼容:如何发现过期接口

    以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


  • 相关阅读:
    游黄龙溪有感
    一个人的元宵节
    这个女人创业 实在让人佩服
    职场中人需要改变的9种想法
    元宵之思
    美资,台资,国有企业比较 经典!
    青年人创业最关注创业能力
    footer
    Running Scripts
    sql attention
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3233775.html
Copyright © 2011-2022 走看看