iOS忽略警告/主动添加警告

作者: ThaiLanKing | 来源:发表于2017-07-05 09:46 被阅读363次

    忽略警告

    精确忽略指定代码块的警告

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "警告名称"
     
    // 被夹在这中间的代码针对于此警告都会忽视不显示出来
     
    //常见警告的名称
    //1.声明变量未使用  "-Wunused-variable"
    //2.方法定义未实现  "-Wincomplete-implementation"
    //3.未声明的选择器  "-Wundeclared-selector"
    //4.参数格式不匹配  "-Wformat"
    //5.废弃掉的方法     "-Wdeprecated-declarations"
    //6.不会执行的代码  "-Wunreachable-code"
    //7.忽略在arc 环境下performSelector产生的 leaks 的警告 "-Warc-performSelector-leaks"
    //8.忽略类别方法覆盖的警告 "-Wobjc-protocol-method-implementation"(修复开源库bug,覆盖开源库方法时会用到)
     
    #pragma clang diagnostic pop
    

    大范围忽略指定警告

    不推荐,警告放开有利于及时查找问题,大范围忽略警告容易导致一些隐匿性的错误难以定位

    可以在pch等具有大范围作用域的头文件中包含: 
    #pragma clang diagnostic ignored "警告名称"
    如果剔除了push与pop 则后面所有的代码都具有强制消除警告作用
    

    添加警告

    • 普通警告
    #warning TODO
    
    • 提示旧接口废除
    - (void)addTapAction:(SEL)tapAction target:(id)target NS_DEPRECATED_IOS(2_0, 4_0);
    
    • 带信息的警告
    - (void)addTapAction:(SEL)tapAction target:(id)target __attribute__((deprecated("这个接口已废弃,建议使用...代替")));
    
    //系统提供了宏可以简单使用
    - (void)addTapAction:(SEL)tapAction target:(id)target DEPRECATED_MSG_ATTRIBUTE("这个接口已废弃,建议使用...代替");
    
    

    参考文章:
    Xcode警告忽略
    iOS警告收录及科学快速的消除方法

    相关文章

      网友评论

        本文标题:iOS忽略警告/主动添加警告

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