zoukankan      html  css  js  c++  java
  • 跨iOS SDK版本编译问题

    iOS开发时会考虑两种SDK版本兼容性:一个是运行时SDK版本的兼容,即已构建/已发布的APP能在不同系统版本的用户手机上正常运行;一个是编译时SDK版本的兼容,即使用不同版本的SDK编译项目都能正常通过。后者是开发者经常会疏忽的,因为我们通常统一使用最新的SDK来编译项目,很少会再使用老的SDK编译项目,但为了项目的健壮和灵活,我们应该了解一下如何保证编译时的SDK版本兼容。

    由于每个版本的iOS SDK,苹果都会增加许多新的功能,因此会有新的类型,新的方法(由于OC的动态特征,新方法不会造成编译问题)等等,开发者会迫不及待的引入到已有的项目中去,但是用老的SDK编译这些新代码时,会出现找不到符号的编译错误。因此我们应该用以下办法屏蔽这些问题。

      1.使用类名加载新的类型

    WKWebView* webView = [[NSClassFromString(@"WKWebView") alloc] initWithFrame:self.bounds configuration:configuration];

       2.使用版本宏区分代码

    const BOOL IOS10_OR_LATER = ( [[[UIDevice currentDevice] systemVersion] compare:@"10.0" options:NSNumericSearch] != NSOrderedAscending );
    
    #if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= 100000))
    
          if (IOS10_OR_LATER) {
    
              [UNUserNotificationCenter currentNotificationCenter].delegate = [AppInitializer sharedInstance];
    
          }
    
    #endif 
  • 相关阅读:
    angular简介和其特点介绍
    angular简介和其特点介绍(上)
    javascript基础部分三大核心是什么意思 ?
    Javascript介绍
    CSS 基础知识(下)
    CSS 基础知识(中)
    echarts饼图样式
    es6箭头函数
    微信小程序中的app文件介绍
    关于vue-cli中-webkit-flex-direction: column失效问题
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/6396482.html
Copyright © 2011-2022 走看看