歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Objective-C Log日志提高 預定義宏使用

使用NSLog記錄日志是很方便的操作,但是有時候也希望能夠像C/C++編程一樣使用一些預定義的宏,比如獲取當前文件名、行號等,在XCode中其實也有這樣的功能。

XCode的c預處理器提供了一些標准宏,另外Objective-C語言還提供了隱含的_cmd參數,可以用來獲取當前方法的selector,以及將selector與class轉換為字符串的函數。

可以在NSLog中使用這些宏及函數來增強日志功能。

能夠在C/C++/Objective-C中使用的預處理宏有:

宏格式描述 __func__
%s 當前函數名
__LINE__
%d 當前行號
__FILE__
%s 當前文件名,包含完整的路徑信息
__PRETTY_FUNCTION__
%s 與__func__類似,但是函數名中包含了c++類型信息

能夠在Objective-C中使用的表達式/函數有:

函數格式描述 NSStringFromSelector(_cmd)
%@ 返回當前selector名 NSStringFromClass([self class]) %@ 返回當前對象的類名 [[NSString stringWithUTF8String:__FILE__] lastPathComponent] %@ 返回當前文件名,不含路徑信息 [NSThread callStackSymbols] %@ 返回當前調用棧信息

注意:Log盡量不要讓最終用戶可以看到,防止敏感信息洩露。

Copyright © Linux教程網 All Rights Reserved