簡體   English   中英

用於打開和關閉NSLog的正則表達式?

[英]Regular expression for turning NSLogs on and off?

我有一個大型的Xcode項目,它有幾十個NSLog,有些已經注釋掉了。

Xcode中的查找/替換有一個正則表達式選項,所以如何讓它注釋掉所有活動的NSLog,其他查找/替換的方式可以再次打開它們。 所以,初始代碼是:

//NSLog(@"one");
NSLog(@"two");

在正則表達式找到/替換后變為:

//NSLog(@"one");
//**NSLog(@"two");

轉回來的是:

//NSLog(@"one");
NSLog(@"two");

有一個更好的解決方案。 把它放在你的prefix.pch文件中:

//disable logging when not in debug
#ifndef DEBUG
#undef NSLog
#define NSLog(args, ...)
#endif

當您的應用程序未處於調試模式時,這將禁用NSLog。 這樣您就不必從代碼中實際刪除它們,但它們不會對性能產生影響。

如果您想知道它是如何工作的,它會在未定義DEBUG宏時將NSLog()函數重新定義為空白。 默認情況下,DEBUG僅為調試項目定義。 如果您願意,只需用#if SOME_OTHER_CONDITION替換第一行,就可以將其更改為以不同的方式打開和關閉。

對此更好的解決方案是使用諸如DLog之類的宏,您可以使用調試(或您自己的編譯器標志)來控制。 檢查此鏈接 鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM