iOS 让中文打印时输出的Unicode编码显示为正常的中文输出

2020-10-21  本文已影响0人  笔头还没烂

需要在项目中直接引用三个文件:.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
上一篇下一篇

猜你喜欢

热点阅读