忽略警告
精確忽略指定代碼塊的警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "警告名稱"
// 被夾在這中間的代碼針對于此警告都會忽視不顯示出來
//常見警告的名稱
//1.聲明變量未使用 "-Wunused-variable"
//2.方法定義未實(shí)現(xiàn) "-Wincomplete-implementation"
//3.未聲明的選擇器 "-Wundeclared-selector"
//4.參數(shù)格式不匹配 "-Wformat"
//5.廢棄掉的方法 "-Wdeprecated-declarations"
//6.不會執(zhí)行的代碼 "-Wunreachable-code"
//7.忽略在arc 環(huán)境下performSelector產(chǎn)生的 leaks 的警告 "-Warc-performSelector-leaks"
//8.忽略類別方法覆蓋的警告 "-Wobjc-protocol-method-implementation"(修復(fù)開源庫bug,覆蓋開源庫方法時(shí)會用到)
#pragma clang diagnostic pop
大范圍忽略指定警告
不推薦,警告放開有利于及時(shí)查找問題,大范圍忽略警告容易導(dǎo)致一些隱匿性的錯(cuò)誤難以定位
可以在pch等具有大范圍作用域的頭文件中包含:
#pragma clang diagnostic ignored "警告名稱"
如果剔除了push與pop 則后面所有的代碼都具有強(qiáng)制消除警告作用
添加警告
- 普通警告
#warning TODO
- 提示舊接口廢除
- (void)addTapAction:(SEL)tapAction target:(id)target NS_DEPRECATED_IOS(2_0, 4_0);
- 帶信息的警告
- (void)addTapAction:(SEL)tapAction target:(id)target __attribute__((deprecated("這個(gè)接口已廢棄,建議使用...代替")));
//系統(tǒng)提供了宏可以簡單使用
- (void)addTapAction:(SEL)tapAction target:(id)target DEPRECATED_MSG_ATTRIBUTE("這個(gè)接口已廢棄贱案,建議使用...代替");