消除Xcode編譯警告

最近項目做完了,開始進行優(yōu)化,第一件事就是消除編譯警告。編譯警告雖然不會導致項目崩潰,但是看著煩。一邊消除一邊記錄下。

1、屬性聲明問題


源代碼長這個樣子:

@property (nonatomic) id value;

很明顯是缺省屬性聲明的問題,警報的意思就是說:沒有明確的指明這個屬性是assign,retain,還是copy,現(xiàn)在編譯器默認這是 assign 類型的,但這對于id這種non-GC類型的變量不適用。查看下這里代碼的需求,發(fā)現(xiàn)這個地方應該用strong,添加上strong屬性后,警告消失。

2、類型轉(zhuǎn)換的姿勢不對


可以使用Xcode提示的那樣進行修改,但建議把前面的格式化符號改為 %zd,即是這個樣子:

NSString *str = [NSString stringWithFormat:@"%zd", i];

這樣表示一個size_t值(sizeof返回的類型),而不是強制轉(zhuǎn)換,就不會存在丟失精度什么問題了。(個人的理解,如果不對,望指正)

3、方法的返回的類型,與方法定義的類型不一致。如是枚舉型,但定義的時候定義的是NSUInteger

將返回值類型修改為枚舉型即可。

4、.h 中聲明方法的參數(shù)類型和.m實現(xiàn)時方法的參數(shù)類型不一致

這是個非常蠢的問題,統(tǒng)一一下就好了。

5、README,LICENCE,gitkeep文件不能編譯的警告,像是這個樣子:

刪掉對應文件就好了。

6、百度地圖的警告

警告提示的是百度 BaiduMapAPI.framework 框架里面使用雷達的幾個類支持的最低系統(tǒng)版本是 iOS8.2,而我門開發(fā)的App是從 iOS7 開始適配的,暫時道行不夠,這個幾個警告表示無可奈何。(如果你有解決方案,還請告知,感激不盡)

7、參數(shù)類型傳錯了

這里需要一個 BOOL類型,但是傳了一個控制器類型的,竟然沒有崩潰??,醉了。

8、使用了已經(jīng)被棄用的 API

解決方案:換成提示讓使用的 API。

這次解決編譯警告遇到的問題就這么多,以后如果再遇見其它的,再添加。

下篇見~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容