Debug栏打印时自动把Unicode编码转化成汉字

简介: Debug栏打印时自动把Unicode编码转化成汉字

Debug栏打印时自动把Unicode编码转化成汉字


我们在打印调试时候经常会遇到这种,然后看不懂的一些文字。我们可以通过加入一段代码去转码

b3778c2c0922460f58adf8f9f42fb874.png

Snip20160823_1.png

转码之后的效果图

2cbe5931eb30331b133485d781a578c8.png

Snip20160823_3.png

直接上代码

#import <Foundation/Foundation.h>
@implementation NSDictionary (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *str = [NSMutableString string];
    [str appendString:@"{\n"];
    // 遍历字典的所有键值对
    [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        [str appendFormat:@"\t%@ = %@,\n", key, obj];
    }];
    [str appendString:@"}"];
    // 查出最后一个,的范围
    NSRange range = [str rangeOfString:@"," options:NSBackwardsSearch];
    if (range.length != 0) {
        // 删掉最后一个,
        [str deleteCharactersInRange:range];
    }
    return str;
}
@end
@implementation NSArray (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *str = [NSMutableString string];
    [str appendString:@"[\n"];
    // 遍历数组的所有元素
    [self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        [str appendFormat:@"%@,\n", obj];
    }];
    [str appendString:@"]"];
    // 查出最后一个,的范围
    NSRange range = [str rangeOfString:@"," options:NSBackwardsSearch];
    if (range.length != 0) {
        // 删掉最后一个,
        [str deleteCharactersInRange:range];
    }
    return str;
}
@end

将自己写好的这段代码拖入到你的项目里面,就可以实现上面的效果

当然我们也可以利用第三方插件

// 有时候我们在xcode中打印中文,会打印出Unicode编码,还需要自己去一些在线网站转换,有了插件就方便多了。
 DXXcodeConsoleUnicodePlugin 插件


相关文章
|
网络协议 安全 Unix
深入剖析进程间通信:Unix 套接字、共享内存与IP协议栈的性能比较
深入剖析进程间通信:Unix 套接字、共享内存与IP协议栈的性能比较
386 2
|
移动开发 Java 应用服务中间件
tomcat第1章 tomcat介绍、安装、部署项目
tomcat第1章 tomcat介绍、安装、部署项目
374 0
|
6月前
|
数据可视化 数据挖掘 BI
强大的Quick BI体验
作为一名Python开发工程师,我日常涉及数据分析工作。近期体验了阿里云的Quick BI——一款全场景数据消费式BI平台。它支持拖拽操作、实时分析海量数据,并提供丰富的可视化组件,如柱状图、地图等,助力高效决策。本文分享了从申请账号到使用测试数据进行可视化的全过程,肯定其便捷性与强大功能的同时,也建议加强与Python的集成、扩展高级分析模型及用户自定义功能。适合对数据分析感兴趣的读者了解与尝试。
234 84
|
存储 SQL 算法
ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
CollapsingMergeTree是ClickHouse的一种表引擎,它扩展了`MergeTree`,通过折叠行来优化存储和查询效率。当`Sign`列值为1和-1的成对行存在时,该引擎会异步删除除`Sign`外其他字段相同的行,只保留最新状态。建表语法中,`sign`列必须为`Int8`类型,用来标记状态(1)和撤销(-1)。写入时,应确保状态和撤销行的对应关系以保证正确折叠。查询时,可能需要使用聚合函数如`sum(Sign * x)`配合`GROUP BY`来处理折叠后的数据。使用`FINAL`修饰符可强制折叠,但效率较低。系列文章提供了更多关于ClickHouse及其表引擎的详细解析。
437 1
|
存储 固态存储 数据管理
1t固态硬盘为什么不建议分区
随着技术进步,1TB固态硬盘(SSD)成为升级存储的首选。SSD因其快速读写和耐用性正替代传统机械硬盘(HDD)。本文探讨为何不建议为1TB SSD分区:了解SSD与HDD工作原理差异至关重要;分区可能增加磨损、降低性能并使管理复杂化;然而,分区有助于数据安全与管理。若决定分区,教程提供了无损拆分方法。最终,分区决策取决于个人使用习惯,重要的是做好数据备份。
1t固态硬盘为什么不建议分区
|
11月前
|
数据采集 SQL 数据库
小说爬虫-01爬取总排行榜 分页翻页 Scrapy SQLite SQL 简单上手!
小说爬虫-01爬取总排行榜 分页翻页 Scrapy SQLite SQL 简单上手!
308 0
|
JavaScript 数据可视化 前端开发
如何安装和配置 ECharts
如何安装和配置 ECharts
637 1
|
自然语言处理 JavaScript 前端开发
如何解决前端多语言选型和实现难题?
多语言(i18n)支持 是企业项目走向国际化的必经之路,也是前端工程师最佳实践的内容之一。不过,多语言框架众多,会带来一系列选型问题,相信大家在平时对项目进行多语言支持时,也往往会遇到如下几个问题:
1422 0
|
JSON 数据格式 iOS开发
APNS IOS 消息推送JSON格式介绍
在开发向苹果Apns推送消息服务功能,我们需要根据Apns接受的数据格式进行推送。下面积累了我在进行apns推送时候总结的 apns服务接受的Json数据格式 示例 1: 以下负载包含哦一个简单的 aps 字典。
3621 0
|
C++ 计算机视觉 Python
Qt+C++窗体界面中英文语言切换
这篇博客针对<<Qt+C++窗体界面中英文语言切换>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
331 0

热门文章

最新文章