你是不是看著開發(fā)過程中出現(xiàn)的一堆的警告會(huì)心情一陣煩躁,別煩躁了,看完此文章,消除警告的小尾巴。
一、SVN 操作導(dǎo)致的警告
1.svn刪除文件后報(bào)錯(cuò) ”xx“is missing from working copy
- 使用命令
sudo find 工程項(xiàng)目路徑 -name ".svn" -exec rm -r {} \;自動(dòng)找到.svn的文件進(jìn)行刪除 - Command+shift+K清理項(xiàng)目
- 重新打開Xcode
2.iOS開發(fā)中編譯通過Success但有紅色警告
- 方法1
Clean +build - 方法2
1.打開finderCommand+shift+G 組合鍵前往文件夾輸入
/用戶/XXXX/Library/Developer/Xcode其中XXX為你的賬戶名
2.進(jìn)入Xcode文件夾后刪除DerviedData目錄 然后項(xiàng)目重新clean編譯
二、代碼警告
1. API過期 不兼容指針類型、循環(huán)引用等一般性警告
可以通過以下宏定義罩住警告的方法來消除
- 開始
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations" - 結(jié)束
#pragma clang diagnostic pop
注意:ignored 的后面雙引號里的內(nèi)容可以通過以下方式查看
1.選擇一個(gè)警告右鍵,點(diǎn)擊Reveal in Log
Paste_Image.png
2.在描述里找到帶框標(biāo)識(shí)符

Paste_Image.png
[]中的文字即是我們所需
2.Apple LLVM 8.1 Warning Group
"Missing submodule 'AVFoundation.XXXXXX'"
此類問題總結(jié)下就是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.....
很多時(shí)候編譯器會(huì)因?yàn)橛泻芏鄬傩曰蛘叻椒ǘ家觧onnull屬性時(shí)報(bào)這個(gè)警告,對此我們有2種方式
1.手動(dòng)添加nullable或nonnull修飾屬性或方法;
2.采用宏定義
開始:NS_ASSUME_NONNULL_BEGIN結(jié)束:NS_ASSUME_NONNULL_END
這兩個(gè)要配合使用,在其區(qū)間的屬性都會(huì)獲得nonnull屬性
4.Apple Mach-O Linker (ld) Warning Group
查看警告的目錄文件,然后進(jìn)入
項(xiàng)目名字 -> targets -> Build Settings ->搜索 search path查看framework search path 、library search path 、header search path 把里面沒用的東西 點(diǎn) 減號 刪掉 就行了。
5.Empty paragraph passed to 'XXXXXX' command的警告
進(jìn)入項(xiàng)目名字 -> targets -> Build Settings ->搜索 other warning 在other warning Flags 添加 -Wno-documentation
6.Pointer is missing a nullability type specifier..... 不能為空警告
NS_ASSUME_NONNULL_BEGIN
相關(guān)需要忽略警告的代碼
NS_ASSUME_NONNULL_END
