1. 程式人生 > >iOS 去除警告 看我就夠了

iOS 去除警告 看我就夠了

你是不是看著開發過程中出現的一堆的警告會心情一陣煩躁,別煩躁了,看完此文章,消除警告的小尾巴。

一、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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。