優化的NSLog技巧

2021-06-21 20:55:33 字數 789 閱讀 8155

使用nslog的乙個風險是:它的執行會占用時間和裝置資源。

簡單而粗暴的解決方案是:在release前,將所有的nslog注釋掉。簡單有效,但***是:下次你要除錯時,又得將nslog乙個個取消注釋。

以release模式編譯的程式不會用nslog輸出,而以debug模式編譯的程式將執行nslog的全部功能。

解決步驟:

[cpp]view plain

copy

#ifdef debug

# define dlog(fmt, ...) nslog((@"[檔名:%s]\n" "[函式名:%s]\n" "[行號:%d] \n" fmt), __file__, __function__, __line__, ##__va_args__);

#else

# define dlog(...);

#endif

在程式中使用dlog來替換原來的nslog

[cpp]view plain

copy

dlog(@

"當前程式目錄是:%@"

修改專案的配置,使得在debug編譯的時候,編譯dlog的巨集,產生詳細的日誌資訊,而release的時候,不產生任何控制台輸出

在other linker flags 中,在debug的時候,加入編譯屬性 -debug

這樣控制台會顯示這樣的日誌資訊

[cpp]view plain

copy

[行號:37]   

NSLog使用技巧

前提 在xcode做開發除錯時往往需要列印一些除錯資訊做debug用,大家知道當列印資訊的地方多了之後在模擬器上跑可能不會有什麼問題,因為模擬器用的是電腦的硬體但是當應用跑在裝置上時這些輸出語句會在很大程度上影響應用的效能,針對這種問題可以寫一些巨集來控制這些除錯資訊的輸出。在 prefix.pch...

NSLog使用技巧

新建 pch 檔案。在 building setting 中搜尋 prefix header 寫入 專案名稱 pch檔名 在 pch 檔案中新增如下 ifdef objc ifdef debug define nslog fmt,nslog s line d fmt pretty function ...

OC 開發之NSLog使用技巧

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