需要在项目中直接引用三个文件:.Ulysses-Group.plist 文件,"NSArray+Log.h"头文件以及"NSArray+Log.m"实现文件。工程引入这三个文件重新跑,即可让原本打印中文输出的Unicode编码显示为正常的中文输出。
1、文件可以通过下面这个链接获取:
链接: https://pan.baidu.com/s/1VqOLpTKonA-S9UborwACSw 密码: c6e9
2、所有文件的源码如下
(1).plist文件源码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>createMarkedFile</key>
<false/>
<key>sheetClusters</key>
<array>
<array>
<string>NSArray+Log.h</string>
</array>
<array>
<string>NSArray+Log.m</string>
</array>
</array>
</dict>
</plist>
(2).h文件源码如下:
#import <Foundation/Foundation.h>
@interface NSArray (Log)
@end
@interface NSDictionary (Log)
@end
(3).m文件源码如下:
#import "NSArray+Log.h"
@implementation NSArray (Log)
// 只需要在分类中,重写这个方法的实现,不需要导入分类文件就会生效
- (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level
{
// 定义用于拼接字符串的容器
NSMutableString *stringM = [NSMutableString string];
// 拼接开头
[stringM appendString:@"(\n"];
// 拼接中间的数组元素
[self enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[stringM appendFormat:@"\t%@,\n",obj];
}];
// 拼接结尾
[stringM appendString:@")\n"];
return stringM;
}
@end
@implementation NSDictionary (Log)
// 只需要在分类中,重写这个方法的实现,不需要导入分类文件就会生效
- (NSString *)descriptionWithLocale:(id)locale
{
// 定义用于拼接字符串的容器
NSMutableString *stringM = [NSMutableString string];
// 拼接开头
[stringM appendString:@"{\n"];
// 遍历字典,拼接内容
[self enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
[stringM appendFormat:@"\t%@ = %@;\n",key,obj];
}];
// 拼接结尾
[stringM appendString:@"}\n"];
return stringM;
}
@end
网友评论