2013-07-15 27 views
2

我想使用DebugLog()打印值而不是NSLog()。我相信DebugLog()更有效率。但是我無法在我的項目中使用它(不會在提示中出現)。我相信我們必須爲Build設置一些東西。有沒有人對此有任何想法?使用DebugLog()代替NSLog()

謝謝。

+0

從來沒有聽說過它。不確定它甚至存在。文檔表明它也不存在。 – Fogmeister

+0

我認爲他說的是我們在應用程序處於發佈模式時使用的dlog – Kasaname

+0

是來自某個第三方庫的調試日誌嗎?如果你只是想在調試過程中使用NSLog,請使用宏。 – Rakesh

回答

8

DEBUGLOG()是不是在objetice-C支持的方法,如果你想實現它自己,做這樣的事情:

#ifdef DEBUG 
#define DebugLog(s, ...) NSLog(s, ##__VA_ARGS__) 
#else 
#define DebugLog(s, ...) 
#endif 

從這裏摘自:

DebugLog Format string is not a string literal

-2

僅對調試版本調用NSLog

#ifdef DEBUG 
    NSLog("Debugging"); 
    //or any other statement 
#endif 

(只有在您的方案中構建配置爲「調試」時纔會調用)

+0

爲什麼選擇投票? – Rakesh

+0

這對於源代碼中的每個日誌都是必需的,其他解決方案允許您對其進行集中定義。 – jbat100

+0

@ jbat100:好的。我沒有提到另外。我只是在講如何做到這一點。它會起作用。如何實施它取決於OP。爲什麼會有這樣的投票呢? – Rakesh

1
#ifdef DEBUG 
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); 
#else 
# define DLog(...) 
#endif