第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

是否應(yīng)該在生產(chǎn)代碼上使用NSLog()?

是否應(yīng)該在生產(chǎn)代碼上使用NSLog()?

慕森王 2019-08-09 15:31:49
是否應(yīng)該在生產(chǎn)代碼上使用NSLog()?我在這個(gè)網(wǎng)站上被告知了幾次,但我想確保確實(shí)如此。我希望能夠在我的代碼中撒上NSLog函數(shù)調(diào)用,并且Xcode / gcc會(huì)在構(gòu)建我的Release / Distribution版本時(shí)自動(dòng)刪除這些調(diào)用。我應(yīng)該避免使用它嗎?如果是這樣,有經(jīng)驗(yàn)的Objective-C程序員之間最常見(jiàn)的選擇是什么?
查看完整描述

3 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

預(yù)處理器宏確實(shí)非常適合調(diào)試。NSLog()沒(méi)有任何問(wèn)題,但是使用更好的功能定義自己的日志記錄功能很簡(jiǎn)單。這是我使用的,它包括文件名和行號(hào),以便更容易跟蹤日志語(yǔ)句。

#define DEBUG_MODE#ifdef DEBUG_MODE    #define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )#else
    #define DebugLog( s, ... ) #endif

我發(fā)現(xiàn)將整個(gè)語(yǔ)句放在前綴頭而不是自己的文件中更容易。如果需要,可以通過(guò)讓DebugLog與普通的Objective-C對(duì)象進(jìn)行交互來(lái)構(gòu)建更復(fù)雜的日志系統(tǒng)。例如,您可以擁有一個(gè)寫入其自己的日志文件(或數(shù)據(jù)庫(kù))的日志記錄類,并包含您可以在運(yùn)行時(shí)設(shè)置的“priority”參數(shù),因此調(diào)試消息不會(huì)顯示在您的發(fā)行版本中,但錯(cuò)誤消息是(如果你這樣做,你可以使DebugLog(),WarningLog()等。

哦,請(qǐng)記住,#define DEBUG_MODE可以在應(yīng)用程序的不同位置重復(fù)使用。例如,在我的應(yīng)用程序中,我使用它來(lái)禁用許可證密鑰檢查,并且只允許應(yīng)用程序在特定日期之前運(yùn)行。這讓我可以輕松地分發(fā)一個(gè)時(shí)間有限,功能齊全的beta版本。


查看完整回答
反對(duì) 回復(fù) 2019-08-09
  • 3 回答
  • 0 關(guān)注
  • 474 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)