iOS 去除警告看我就够了
2017-06-30 本文已影响1070人
crazy丶LT
你是不是看着开发过程中出现的一堆的警告会心情一阵烦躁,别烦躁了,看完此文章,消除警告的小尾巴。
一、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.打开finderCommand+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.在描述里找到带框标识符
[]中的文字即是我们所需
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.手动添加nullable
或nonnull
修饰属性或方法;
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 warning
在other warning Flags
添加 -Wno-documentation
6.Pointer is missing a nullability type specifier..... 不能为空警告
NS_ASSUME_NONNULL_BEGIN
相关需要忽略警告的代码
NS_ASSUME_NONNULL_END