iOS10 log打印不全

今天在各種搞自定義宏,替換NSLog。修改宏的次數(shù)特別多。大家都知道修改任意一個(gè)宏,項(xiàng)目就要重新編譯。原來(lái)項(xiàng)目編譯一次只要5秒鐘,只要你修改一個(gè)宏,編譯一次就要25秒鐘,5倍,很?chē)樔?。大家還是慎用宏??梢詤⒖嘉以瓉?lái)的文章OC中extern、static、const和宏定義
寫(xiě)這篇文章的時(shí)候需要頻繁Edit scheme 這里告訴你們快接鍵command + shift + , 不用快捷鍵打開(kāi)太慢了,你調(diào)試完自定義log就可以忘了這個(gè)快捷鍵了。
下面就是對(duì)應(yīng)的方法了。找一個(gè)類(lèi)定義兩個(gè)方法

/*
 獲取當(dāng)前事件,自定義log使用, yyyy-MM-dd HH:mm:ss
 */
NSString* currentTime(){
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *currentTime = [formatter stringFromDate:[NSDate date]];
    return currentTime;
}

/*
 獲取當(dāng)前項(xiàng)目名稱(chēng),自定義log使用,
 */
NSString* projectName(){
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
    NSString *projectName = [infoDictionary objectForKey:(NSString *)kCFBundleExecutableKey];
    return projectName;
}

然后在pch文件中定義宏

#ifndef __OPTIMIZE__  //DEBUG 模式
//#ifdef DEBUG  //DEBUG 模式
#define VCLog(...) printf("%s %s %s\n",[currentTime() UTF8String],[projectName() UTF8String],[[NSString stringWithFormat:__VA_ARGS__]UTF8String]);
#else
#define VCLog(...) //Release  不輸出log,節(jié)省資源
#endif

一定要調(diào)用UTF8String方法,否則會(huì)亂碼。
這里對(duì)__OPTIMIZE__做一下解釋,這個(gè)宏是Release模式下系統(tǒng)定義的宏,所以可以根據(jù)這個(gè)來(lái)判斷當(dāng)前是不是release模式。

這里教大家一個(gè)裝逼的方法來(lái)定義宏,但是沒(méi)什么卵用,僅僅是用來(lái)裝逼

image.png

這里的下劃線(xiàn)是拼接的作用,可以實(shí)現(xiàn)一樣的效果。

tips

這里解決下#ifdef DEBUG不起作用的情況

image.png

按照如圖所示的步驟檢查一下,你這個(gè)位置是不是設(shè)置了DEBUG這個(gè)宏。這里的宏你是可以隨意添加的。
我的項(xiàng)目剛開(kāi)始就是因?yàn)檫@里沒(méi)有添加DEBUG導(dǎo)致#ifdef DEBUG不起作用,然后不得已用#ifndef __OPTIMIZE__進(jìn)行了替換,現(xiàn)在可以放心的使用#ifdef DEBUG了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,724評(píng)論 19 139
  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問(wèn)題,看到一篇介紹Xcode8,swift3變化的文章,覺(jué)得很詳細(xì)...
    uniapp閱讀 4,877評(píng)論 0 12
  • 每日一圖 圖(單反)/少帥 虔誠(chéng)地雙手合十那么誠(chéng)懇, 卻換回你一句不必認(rèn)真, 落下的淚沉淀出一道傷痕, 那是永遠(yuǎn)都...
    J少帥閱讀 169評(píng)論 0 0
  • 前段時(shí)間看《奇葩說(shuō)》,有一期的主題大致是“如果時(shí)光機(jī)帶你到十年后,你發(fā)現(xiàn)站在你身邊的人不是你現(xiàn)在喜歡的人,...
    折紙飛機(jī)的下雨天閱讀 311評(píng)論 0 2

友情鏈接更多精彩內(nèi)容