美文网首页
Xcode 忽略警告配置

Xcode 忽略警告配置

作者: 择势量投 | 来源:发表于2020-05-22 17:01 被阅读0次

    Xcode 在 Command + B build项目时,会对代码进行静态分析检查,可能会有些警告,有些警告是”无风险“的,如实例化未使用,方法过期等,有些警告预示着代码存在运行”风险“,如类型不匹配、方法未实现、selector中使用了不存在的方法名、循环引用、自定义的警告等。我们应该对警告也要高度重视,通过正确处理,降低代码运行风险。还有些代码洁癖者,可对”无风险“警告做些忽略处理,方便查找和处理”风险“性警告。

    一、通过 Xcode 配置全局性忽略警告

    1、首先查看警告标识

    在 Xcode 中切换到警告列表,右击某个警告,选择 Reveal in Log(有时这个选项可能是置灰状态,不能选择,可以尝试编译下项目,或者退出 Xcode 重新来一次)


    Reveal in Log

    下图红色框中,中括号内部的就是警告标识符(先要点击右上角展开警告才能看到这一大堆信息)


    警告标识符

    2、在 Build Settings 中项目全局忽略警告

    在项目的 Build Settings 中也可以设置忽略某种或多种类型的警告,不过在这设置的影响范围就是整个项目的了,要三思而后行,不然就是给自己挖坑。

    填写内容的规则,仅仅是在第一种方法中找到的警告标识符中的 W 字母后面加上 no- 就可以了。


    Build Settings 中项目全局忽略警告

    还是上面的例子,我们可以对整个 Project 忽略警告,也可以仅限于某一个 Target 单独忽略警告,在 Build Settings 中找到 Custom Compiler Flags,双击 Other Warning Flags(可以配置 Debug 和 Release 环境),填入 -Wno-unused-variable 后,编译项目,项目中所有的此类型警告都没有了。

    project → build Setting 搜索 other warning 添加 如下忽略规则

    // 实例化,未使用
    -Wno-unused-variable
    
    // 过期方法
    -Wno-deprecated-declarations
    
    // self 警告
    -Wno-implicit-retain-self
    

    二、忽略 CocoaPods 第三方库警告

    通过 CocoaPods 给项目导入了一些第三方库,这些库里面或多或少会有些警告,想消除这些警告,很简单,只需在 Podfile 中加上这一句 inhibit_all_warnings!,通过 CocoaPods 安装的第三库的警告就没有了。

    pod 'WCDB.swift', :inhibit_warnings => true
    

    三、局部代码处理

    1、方法弃用警告

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"
    //code这里插入相关的代码
    #pragma clang diagnostic pop
    

    2.不兼容指针类型

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wincompatible-pointer-types"
    //code这里插入相关的代码
    #pragma clang diagnostic pop
    

    3.retain cycle

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Warc-retain-cycles"
    //code这里插入相关的代码
    #pragma clang diagnostic pop 
    

    4.未使用变量

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "--Wunused-variable"
    //code这里插入相关的代码
    #pragma clang diagnostic pop
    

    5.selector中使用了不存在的方法名(在使用反射机制通过类名创建类对象的时候会需要的)

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wundeclared-selector"
    //code这里插入相关的代码
    #pragma clang diagnostic pop
    

    相关文章

      网友评论

          本文标题:Xcode 忽略警告配置

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