常常在一些第三方庫(kù)中看到作者用以下套路處理編譯器警告:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "xxxxxx"
/* code */
#pragma clang diagnostic pop
這個(gè)也是pragma的一個(gè)較常用的用法。也很好理解缩焦,push一個(gè)編譯器特殊處理的方法踩衩,指定方法的命令,具體的code徽缚,處理完后pop掉給特殊處理的方法憨奸,恢復(fù)原來(lái)編譯器默認(rèn)的處理方法。
- 其中以上"xxxxxx"是"命令"字符串凿试。
- 以下簡(jiǎn)單羅列幾個(gè)常用的命令
"-Warc-performSelector-leaks" 忽略performselector可能造成內(nèi)存泄漏的警告
"-Wreceiver-is-weak" 忽略調(diào)用者接收者是weak屬性的警告
"-Wunused-variable" 忽略變量未使用的警告
"-Wdeprecated-declarations" 忽略方法棄用的警告
"-Warc-retain-cycles" 忽略循環(huán)引用的警告
"-Wincompatible-pointer-types" 忽略指針不兼容的警告
- 其他的命令可以參考鏈接: 命令列表