阅读 296

iOS中NSLog打印中文及打印不全的宏

Xcode打印方法NSLog() 在Xcode8以后就出现了打印输出不完整、打印中文时候显示的问题,调试是在难受。

之前也用过printf替换NSLog,但是还是中文显示不了,于是用分类,就是重新写一个字典和数组的分类,重写他们的- (NSString *)descriptionWithLocale:(id)locale这个方法,搞得很麻烦。现在一个宏搞定,简单拖到pch头文件里就行。

功能:

在debug模式打印、release模式下不打印。

解决打印输出不完整,打印中文显示Unicode的问题。

由于里面用了NSString,如果前面没有添加其他头文件里包含,就可能报错,所以在pch文件里需要加:#import <UIKit/UIKit.h>

废话不多说,Here is the code:

//修复打印不完整,打印中文显示Unicode码问题

#ifndef __OPTIMIZE__

#define NSLog(FORMAT, ...) fprintf(stderr, "[%s %s %s-%d] %s\n", __DATE__ , __TIME__, [[[NSString stringWithUTF8String: __FILE__] lastPathComponent] UTF8String], __LINE__, [[[NSString alloc] initWithData:[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] dataUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding] UTF8String]?[[[NSString alloc] initWithData:[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] dataUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding] UTF8String]:[[NSString stringWithFormat: FORMAT, ## __VA_ARGS__] UTF8String]);

#else

#define NSLog(FORMAT, ...) nil

#endif

作者:若见_Kevin

原文链接:https://www.jianshu.com/p/32b1ef6eb14a

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐