你是不是看着开发过程中出现的一堆的警告会心情一阵烦躁,别烦躁了,看完此文章,消除警告的小尾巴。

一、SVN 操作导致的警告

1.svn删除文件后报错 ”xx“is missing from working copy
  • 使用命令sudo find 工程项目路径 -name ".svn" -exec rm -r {} \;自动找到.svn的文件进行删除
  • Command+shift+K清理项目
  • 重新打开Xcode
2.iOS开发中编译通过Success但有红色警告
  • 方法1
    Clean +build
  • 方法2
    1.打开finder Command+shift+G 组合键前往文件夹输入
    /用户/XXXX/Library/Developer/Xcode其中XXX为你的账户名
    2.进入Xcode文件夹后删除DerviedData目录 然后项目重新clean编译

二、代码警告

1. API过期 不兼容指针类型、循环引用等一般性警告

可以通过以下宏定义罩住警告的方法来消除

  • 开始
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  • 结束
    #pragma clang diagnostic pop
    注意:ignored 的后面双引号里的内容可以通过以下方式查看
    1.选择一个警告右键,点击Reveal in Log
     
    Paste_Image.png

    2.在描述里找到带框标识符
 
Paste_Image.png

[]中的文字即是我们所需

2.Apple LLVM 8.1 Warning Group

"Missing submodule 'AVFoundation.XXXXXX'"
此类问题总结下就是AVFoundation Import Warnings after XCODE 8 upgrade
解决方法:

#import <AVFoundation/AVFoundation.h>
// delete us
//#import <AVFoundation/AVSpeechSynthesis.h>
//#import <AVFoundation/AVAudioSession.h>
3.Pointer is missing a nullability type specifier.....

很多时候编译器会因为有很多属性或者方法都要加nonnull属性时报这个警告,对此我们有2种方式
1.手动添加nullablenonnull修饰属性或方法;
2.采用宏定义
开始:NS_ASSUME_NONNULL_BEGIN结束:NS_ASSUME_NONNULL_END
这两个要配合使用,在其区间的属性都会获得nonnull属性

4.Apple Mach-O Linker (ld) Warning Group

查看警告的目录文件,然后进入
项目名字 -> targets -> Build Settings ->搜索 search path查看framework search path 、library search path 、header search path把里面没用的东西 点 减号 删掉 就行了。

5.Empty paragraph passed to 'XXXXXX' command的警告

进入项目名字 -> targets -> Build Settings ->搜索 other warningother warning Flags添加 -Wno-documentation

6.Pointer is missing a nullability type specifier..... 不能为空警告
NS_ASSUME_NONNULL_BEGIN   
相关需要忽略警告的代码
NS_ASSUME_NONNULL_END

三、消除cocoaPods里第三方库的警告

消除CocoaPods警告

咱不能只会消除警告,必要的时候还需要写下警告呢,用以提醒,请看

iOS 添加警告

 


作者:crazy丶LT
链接:https://www.jianshu.com/p/a0b4bb38f143
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
posted on 2018-12-29 15:31  ZOYOO  阅读(1449)  评论(0编辑  收藏  举报