码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发之使用代码定位性更高的Log

时间:2015-07-01 20:39:28      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:ios开发   objective-c   xcode   nslog   代码定位   

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 

我要捐赠: 点击捐赠

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
会输出:
Method: +[MyClass doo], Line: 16. 

我们还可以定义一些宏来快速在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|123
M:-[AppDelegate applicationDidFinishLaunching:], L:62.|操作2|子操作1|结果1
M:-[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开发   objective-c   xcode   nslog   代码定位   

原文地址:http://blog.csdn.net/haomengzhu/article/details/46713767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!