IOS專案去除NSLog

2021-07-10 08:00:46 字數 981 閱讀 5786

我們使用nslogt的目的是為了除錯,並在除錯階段輸出一些資訊,但是在除錯結束,應用發布後,如果還使用nslog輸出資訊,那樣會影響效能。事實上,這個工作量比較大,而且剛剛移除掉時,你會發現又要進行除錯,很麻煩!

移除nslog,需要修改**。思路是重新定義乙個巨集替代nslog,這個巨集是有條件編譯的。為了能夠在工程所有源**中使用這個巨集,需要在《工程名》-prefix.pch檔案中定義這個巨集。這個檔案引入的.h檔案和定義的巨集作用於全部工程中的源**模組,這樣可以省去在每個.h檔案中定義巨集。開啟 presentationlayer工程中的presentationlayer-prefix.pch,新增定義新的日誌巨集

#ifdef debug

#define nslog(...) nslog(__va_args__)

#else

#define nslog(...)

#endif

參考:順便介紹一下nsassert

#define nsassert(condition, desc, ...)

nsassert是ios裡的乙個巨集定義,通常用來除錯

condition是條件表示式,值為yes或no;desc為異常描述,通常為nsstring。當conditon為yes時程式繼續執行,為no時,則丟擲帶有desc描述的異常資訊。nsassert()可以出現在程式的任何乙個位置。

*****************************

自定義乙個巨集

#define ac_assert(condition) nsassert(condition, ([nsstring stringwithformat:@"file name = %s ---> function name = %s at line: %d", __file__, __function__, __line__]));

ac_assert這個巨集的作用是當程式不滿足condition

這個條件時,程式終止,並且輸出不滿足條件的類,以及是類的哪個函式和類中得行數

專案上線的時候去除所有的NSLog

由於開發過程除錯的時候總會用到nslog.但是我們在發布正式版本的時候並不希望這些,一方面損耗效能,另一方面也不太安全,這裡介紹巨集定義的方法,進行處理這種狀況 在工程的pch檔案裡邊進行操作 ifdef debug define nslog nslog va args define debugme...

iOS開發 除錯必備 NSLog

1 ios nslog 2 ios專案之nslog相關 3 ios nslog 控制台 輸出中文 4 再見了nslog 對於程式的開發者來說,擁有一手強大的debug能力,那就好比在武俠世界中擁有一種強大的內功心法一樣,走到 都是大寫的牛b。在我們debug的時候,大部分情況都是要檢視我們的除錯日誌...

iOS開發 NSLog不列印設定

我們可以在發布版本前先把所有nslog語句注釋掉,等以後要除錯時,再取消這些注釋,這實在是一件無趣而耗時的事!還好,還有更優雅的解決方法,就是在專案的prefix.pch檔案裡加入下面一段 加入後,nslog就只在debug下有輸出,release下不輸出了。在 prefix.pch pch全稱是 ...