在使用xcode進行iphone應用開發時,經常需要新增一些第三方的類庫,而一些第三方的類庫由於缺少維護,從而導致類庫中含有各種警告和各種記憶體洩漏,但並不影響執行.
倘若我們需要用到第三方庫,而由不想在**分析時看到這些庫的警告或記憶體洩漏,我需要這樣做:
[cpp]view plain
copy
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-wincompatible-pointer-types"
//含警告的**,如下,btn為uibutton型別的指標
uiview *view = btn;
#pragma clang diagnostic pop
「-wincompatible-pointer-types」為警告型別
clang為編譯器名,這裡也可以替換為gcc
#pragma clang diagnostic ignored後面只能跟乙個忽略警告型別
如果需要同時忽略多種警告,需要這樣寫:
[cpp]view plain
copy
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-wincompatible-pointer-types"
#pragma clang diagnostic ignored "-wincomplete-implementation"
//含警告的**,如下,btn為uibutton型別的指標
uiview *view = btn;
#pragma clang diagnostic pop
另外使用xcode的analyze進行**分析時,xcode會檢查出程式的記憶體洩漏,這個不屬於編譯警告,我們需要新增乙個巨集來把這些**忽略:
[cpp]view plain
copy
#ifndef __clang_analyzer__
//含記憶體洩漏的**
#endif
ios上的開源正則擴充套件類 regexkitlite 就是乙個充滿各種記憶體洩漏的類,儘管作者已經在該類上注釋說可以忽略這些記憶體洩漏的提示,但作為乙個有**潔癖的程式設計師,我還是不想看到這些記憶體洩漏的警告提示.
[cpp]view plain
copy
//已知的一些編譯警告型別
-wincompatible-pointer-types 指標型別不匹配
-wincomplete-implementation 沒有實現已宣告的方法
-wprotocol 沒有實現協議的方法
-wimplicit-function-declaration 尚未宣告的函式(通常指c函式)
-warc-performselector-leaks 使用performselector可能會出現洩漏(該警告在xcode4.3.1中沒出現過,網上流傳說4.2使用performselector:withobject: 就會得到該警告)
-wdeprecated-declarations 使用了不推薦使用的方法(如[uilabel setfont:(uifont*)])
-wunused-variable 含有沒有被使用的變數
警告**查詢方法如下圖:
關於Xcode警告
大多數警告 warning 其實不一定影響專案功能,但是警告太多容易隱藏一些真正需要解決的問題,而且考慮有些朋友的強迫症,xcode的警告都是可以關閉的,出了直接的setting裡治標不治本的設定外,更應該根據編譯器的提示去真正解決它,這樣的過程對更了解編譯器也是有些幫助的。implementing...
xcode 消除警告
專案中引用大量的第三方 時,這些 很複雜,不要輕易去改動它,如果編譯產生很多警告,該如何消除呢?1.最直接 最一勞永逸 最安全的方式,直接找到警告的那段 改為不警告。這個方式最安全。可是它有乙個問題,就是,當我們很多檔案都有這種型別的警告的時候,我們就需要改動很多很多的原始碼了,對於不是我們寫的原始...
Xcode 消除警告
在維護公司老專案的時候,因為很早以前開發的,專案能跑起來。但是公司已經不希望在上面花費時間,或多或少都會出現不少的警告。但是對於我絕對不忍受警告的出現,就想關閉它。以下是一下警告關閉的常規方法,希望能給後繼開發者一些幫助!1.遇到之前非arc的專案 遇到非arc寫的sdk,而自己專案是arc。點選p...