美文网首页iOS开发知识小集
iOS低版本调用高版本API的检查

iOS低版本调用高版本API的检查

作者: _人非草木_ | 来源:发表于2019-01-14 16:38 被阅读164次

    Xcode中的Clang静态检查提供了iOS低版本调用高版本API检查的功能,可以在开发过程中提前发现问题,避免导致兼容性问题。
    具体实现如下:

    • Xcode中进入工程的Build Settings页面,在“Other C Flags”和“Other C++ Flags”中增加“-Wunguarded-availablility”,如下图所示:


      图1

      设置好之后,如果误调用了高版本API,Clang会检测到并报出警告。
      为避免警告过多而忽视,可以将设置修改为“-Werror-unguarded-availablility”,一旦iOS低版本调用了高版本API则会编译报错。

    • 针对pod需要在 podspec 中添加 compiler_flags
    • 如果确认代码是安全的,例如使用了respondsToSelector或available等保护,可以用 #pragma clang diagnostic ignored 忽略掉警告,或者 @available 直接解决:
    if (@available(iOS 8.0, *)) {
        NSString *str = @"Hello world!";
        [str containsString:@"I'm back!"];
    }
    
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wunguarded-availablility"
    NSString *str = @"Hello world!";
    [str containsString:@"I'm back!"];
    #pragma clang diagnostic pop
    

    参考文章:http://www.qingpingshan.com/rjbc/ios/358986.html

    相关文章

      网友评论

        本文标题:iOS低版本调用高版本API的检查

        本文链接:https://www.haomeiwen.com/subject/zphjdqtx.html