您的位置:首页 > 移动开发 > IOS开发

iOS调试技巧——编译器预定义宏

2015-12-22 21:38 417 查看
我们都知道,Objective-C是C语言的超集,必然保留了C语言的一些特性。今天我们就利用这些编译器预定义的宏来输出一些信息,以达到调试程序的目的。
这些宏包括:
(1)__FUNCTION__ ://获取当前方法名;
(2)__func__ ://获取当前方法名;
(3)__PRETTY_FUNCTION__ ://获取当前方法名;
(4)__LINE__ ://获取当前所在行;
(5)__FILE__ ://获取该文件的绝对路径;
(6)__DATE__ ://获取当前日期;
(7)__TIME__ ://获取当前时分秒;
(8)__TIMESTAMP__ ://获取当前时间戳;
示例代码如下:
#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  //获取类名(文件名);
  NSString *className = NSStringFromClass([self class]);
  NSLog(@"类名--------%@",className);

  //获取当前方法名;
  NSLog(@"%s",__FUNCTION__);

  //获取当前方法名;
  NSLog(@"%s",__func__);

  //获取当前方法名;
  NSLog(@"%s",__PRETTY_FUNCTION__);

  //获取当前所在行;
  NSLog(@"%d",__LINE__);

  //获取该文件的绝对路径;
  NSLog(@"%s",__FILE__);

  //获取当前日期;
  NSLog(@"%s",__DATE__);

  //获取当前时分秒;
  NSLog(@"%s",__TIME__);

  //获取当前时间戳;
  NSLog(@"%s",__TIMESTAMP__);

}

@end

输出结果如下:




总结,使用这些预定义宏可以快速的在需要的位置打印log,方便我们调试程序,这个也算是编码中的一个小技巧吧!

github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
最近极客学院Wiki正在进行IT职业技能图谱的制定,我主要负责iOS方向,大家感兴趣的可以一起参加,有问题或者修改可以直接给我发issues或者pull request。https://github.com/chenyufeng1991/skillmap
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: