最近做項目時遇到了很多莫名其妙的問題届惋,其中就有這個打游疗堋(NSLog)。我們先來回顧一下Xcode8發(fā)布以來捂齐,我們遇到的一些關于打印的問題,當然也有解決方法:
1绘证、Xcode8打印問題
先看下面這個圖片隧膏,Xcode升級到Xcode8會打印一些亂七八糟的東西,對開發(fā)也沒啥用嚷那。
在EditScheme -> Run -> Arguments
在Environment Variables一欄中添加OS_ACTIVITY_MODE并設值為Disable胞枕,注意打勾。然后clean一下魏宽。運行項目即可解決腐泻。
2、Xcode8+iOS10 真機測試队询。
上面說了派桩,我們?yōu)榱似帘蔚裟嵌褯]多大用處的log。但是這樣做在模擬器上是正常的蚌斩,但是iOS10真機測試所有的Log日志全部被屏蔽了铆惑!這不是之前設置導致的,而是iOS10為了在真機上提高性能凳寺,所以把Log日志給屏蔽了鸭津。
解決辦法:
自定義Log 需要用printf()進行轉換,真機才能輸出日志
// 可以輸出純凈的內容:NSLog去掉時間戳及其他輸出樣式
#ifdef DEBUG
#define NNSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NNSLog(...)
#endif
// 我推薦用這個打印我們的日志:功能肠缨、行數(shù)
#ifdef DEBUG
#define NSSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSSLog(...)
#endif