iOS开发之使用代码定位性更高的Log
来源:互联网 发布:苹果手机免费赚钱软件 编辑:程序博客网 时间:2024/04/28 11:59
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。
如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^
我要捐赠: 点击捐赠
Cocos2d-X源码下载:点我传送
游戏官方下载:http://dwz.cn/RwTjl
游戏视频预览:http://dwz.cn/RzHHd
游戏开发博客:http://dwz.cn/RzJzI
游戏源码传送:http://dwz.cn/Nret1
关于Log,打印当前函数无非就是_cmd, __func__, __FUNCTION__, __PRETTY_FUNCTION__,在Xcode中_cmd会返回一个SEL对象,
而剩下的都是来自C/C++编译器的定义所以都会返回一个C的字符串,显示结果也都差不多,可能不同编译器会有小小的差别。
显然后面__func__系列要比_cmd好用,相对Objective-C类型内的方法调用,
他不仅会显示方法名,还会显示类型,配合__LINE__,可以精确定位出Log在代码中的位置。
比如这样:
@implementation MyClass+ (void)doo{ //__func__, __FUNCTION__, __PRETTY_FUNCTION__都差不多 NSLog(@"Method: %s, Line: %d.", __func__, __LINE__);}@end
我们还可以定义一些宏来快速在NSLog或者其他Log框架中来使用,比如这样:
#define FUNCINF [NSString stringWithFormat:@"M:%s, L:%d.", __func__, __LINE__]#define PFUNCINF(x) @"%@|%@", FUNCINF, x#define PPFUNCINF(x1, x2) @"%@|%@|%@", FUNCINF, x1, x2#define PPPFUNCINF(x1, x2, x3) @"%@|%@|%@|%@", FUNCINF, x1, x2, x3
举例,假设在AppDelegate的applicationDidFinishLaunching方法中调用如下代码:
分别使用NSLog和Cocoa Lumberjack Log框架的DDLogError(参数和NSLog一样):
NSLog(PFUNCINF(@"开始操作"));NSLog(PPFUNCINF(@"操作1", @123));NSLog(PPPFUNCINF(@"操作2", @"子操作1", @"结果1"));//直接用在Cocoa Lumberjack的Log中DDLogError(PPFUNCINF(@"操作3", @"错误1"));
输出Log(M代表方法名称,L代表行数):
M:-[AppDelegate applicationDidFinishLaunching:], L:60.|开始操作M:-[AppDelegate applicationDidFinishLaunching:], L:61.|操作1|123M:-[AppDelegate applicationDidFinishLaunching:], L:62.|操作2|子操作1|结果1M:-[AppDelegate applicationDidFinishLaunching:], L:64.|操作3|错误1
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。
如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^
我要捐赠: 点击捐赠
Cocos2d-X源码下载:点我传送
游戏官方下载:http://dwz.cn/RwTjl
游戏视频预览:http://dwz.cn/RzHHd
游戏开发博客:http://dwz.cn/RzJzI
游戏源码传送:http://dwz.cn/Nret1
- iOS开发之使用代码定位性更高的Log
- IOS开发之----代码块的使用
- IOS开发之----代码块的使用
- iOS开发之代码块的使用
- ios开发相关的Log使用
- IOS开发之自定义Log
- iOS开发怎么定位问题出错的代码位置
- IOS开发之----代码块的使用(二)
- IOS开发之----代码块的使用(一)
- IOS开发之—-代码块的使用(二)
- iOS开发之使用系统库CoreLocation实现定位功能
- Ios开发之定位CLLocationManager
- iOS开发之定位CLLocationManager
- iOS开发之地图定位
- iOS开发笔记之定位
- IOS开发 地图定位 使用
- Android开发库VUtils之关联代码行的log
- 如何成为更高级别的iOS开发工程师?
- RabbitMQ (六)远程调用RPC
- Android wiki:14.修改Toast样式
- PHP之LAMP环境配置与优化
- 【8.17】建立一个用来实现求3个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序。
- Android wiki:14.自定义Toast样式
- iOS开发之使用代码定位性更高的Log
- OpenCV参考手册之CvCapture结构体
- KBC Petro-SIM v6.0 Win32_64-ISO 2DVD炼油厂模拟
- Android wiki:15.读取系统联系人
- Java基础---JavaSE面试锦集
- Git SourceTree 冲突解决方案
- 介绍几本专业的书籍,一起学习 关于技术 数学方面的
- DesignBuilder.Software.Ltd.DesignBuilder.v4.2.0.054 1CD建筑能耗动态模拟程序
- HashMap解决hash冲突的方法