iphone 宏

来源:互联网 发布:php开发的erp系统 编辑:程序博客网 时间:2024/05/04 08:39
使用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] 格式%@ 返回当前调用栈信息,注意不要把这些内容显示给最终用户,仅仅作为开发时调试使用
原创粉丝点击