我將ddLogLevel
識別爲日誌系統cocoalumberjack的日誌級別。相反,「覆蓋」你的班級(沒有這樣的事情,因爲它是一個全局變量),你應該做他們所說的Fine Grained Logging。也就是說,使用位掩碼中的下一位定義日誌,然後將全局常量設置爲包含或排除標誌的掩碼的按位組合。它在鏈接頁面上進一步解釋。例如:
添加這些定義
#define LOG_FLAG_FOOD_TIMER (1 << 4) // 0...0010000
#define LOG_FOOD_TIMER (ddLogLevel & LOG_FLAG_FOOD_TIMER)
#define DDLogFoodTimer(frmt, ...) ASYNC_LOG_OBJC_MAYBE(ddLogLevel, LOG_FLAG_FOOD_TIMER, 0, frmt, ##__VA_ARGS__)
然後在你的類使用該宏爲日誌聲明:
DDLogFoodTimer(@"blah");
,並設置全局爲:
static const int ddLogLevel = LOG_LEVEL_WARN | LOG_FLAG_FOOD_TIMER;
在C和Objective-C中的const關鍵字創建一個只讀變量。關鍵字const適用於其左邊的任何內容。如果左邊沒有任何東西,它適用於右邊的任何東西。例如:
// a modifiable pointer to a constant integer (its value can't be modified).
const int * i;
// Constant pointer to constant integer.
const int const * i;
的extern是一個變量在別處定義的指示。定義像這樣的全局變量是很常見的風格:
// header file (outside the class definition)
extern NSString* PREFS_MY_CONSTANT;
// implementation file (outside the class definition)
NSString* PREFS_MY_CONSTANT = @"prefs_my_constant";
你想要的是一個全局變量嗎?看看[這個答案](http://stackoverflow.com/questions/8808159/objective-c-global-variables) – Fonix
是的,它是全局變量,設置爲Prefix.pch ans中的值,我可以覆蓋一個給定的班級。 – Colas