相关文章推荐
冲动的八宝粥  ·  UNRESOLVED_ROUTINE ...·  8 月前    · 
逆袭的柿子  ·  react-hook中setTimeout、 ...·  1 年前    · 

将字典(NSDictionary)和数组(NSArray)打印的Log显示为Json格式,可以解决Xcode打印字典和数组时中文显示乱码问题。

* 完美解决字典和数组调试打印时中文显示乱码问题,

*  使用JSON格式打印,可以通过JSON格式化验证

* 缩进格式显示,层次清晰

* 使用po命令调试时也能生效

* DEBUG模式生效,不影响线上版本

* 兼容iOS8及以上版本(iOS8以下没有测试过)

话不多说,直接将 github仓库(https://github.com/shixueqian/PrintBeautifulLog) 仓库上的这两个分类拉入到工程中即可自动生效。

二、测试验证

比如打印以下这个字典:

NSDictionary *dict = @{
        @"ArticleTitle":@"【iOS开发】打开另一个APP(URL Scheme与openURL)",
        @"ArticleUrl":@"https://blog.csdn.net/u011996095/article/details/121281907",
        @"author":@{
            @"nickName":@"方不慌",
            @"blog":@"https://blog.csdn.net/u011996095",
            @"work":@"iOS工程师"
NSLog(@"打印出的字典:%@",dict);

使用之前在Xcode控制台上显示打印的结果:

打印出的字典:{
    ArticleTitle = "\U3010iOS\U5f00\U53d1\U3011\U6253\U5f00\U53e6\U4e00\U4e2aAPP\Uff08URL Scheme\U4e0eopenURL\Uff09";
    ArticleUrl = "https://blog.csdn.net/u011996095/article/details/121281907";
    author =     {
        blog = "https://blog.csdn.net/u011996095";
        nickName = "\U65b9\U4e0d\U614c";
        work = "iOS\U5de5\U7a0b\U5e08";

我们需要使用Unicode编码转换转码才能看到中文。

使用之后在Xcode控制台上显示打印的结果:

打印出的字典:{
  "ArticleTitle" : "【iOS开发】打开另一个APP(URL Scheme与openURL)",
  "ArticleUrl" : "https:\/\/blog.csdn.net\/u011996095\/article\/details\/121281907",
  "author" : {
    "work" : "iOS工程师",
    "blog" : "https:\/\/blog.csdn.net\/u011996095",
    "nickName" : "方不慌"

中文出来了,而且格式也很好看,层次分明;也是JSON格式,可以拿去JSON在线解析及格式化验证

三、使用方式

方式一:使用cocoapods

pod 'PrintBeautifulLog'

方式二:手动引入

直接将 PrintBeautifulLog文件夹内容 拉入到工程中即可自动生效使用。

原理就查看原文作者简书上的一篇文章吧

让NSLog打印字典显示得更好看(解决中文乱码并显示成JSON格式)

一、作用将字典(NSDictionary)和数组(NSArray)打印的Log显示为Json格式,可以解决Xcode打印字典和数组时中文显示乱码问题。* 完美解决字典和数组调试打印时中文显示乱码问题,* 使用JSON格式打印,可以通过JSON格式化验证* 缩进格式显示,层次清晰* 使用po命令调试时也能生效* DEBUG模式生效,不影响线上版本* 兼容iOS8及以上版本(iOS8以下没有测试过)话不多说,直接将github仓库(https://github.com/shix.
可以让Xcode的控制支持array 和dictionary对象的中文打印,Xcode默认打印的是Unicode的码. 此分类的原理就是Unicode的转码. 使用简单,只需要导入分类即可,不需要导入任何头文件. github : https://github.com/biggercoffee/ZXPUnicode
xcode在断点的候,打印一个NSString字符串,用NSLog打印,字符都正常的。 但用print description of 输出到output中文就这样了: \u7f8e\u56fd\u7814\u7a76\u4e3a\u8de8\u5b66\u79d1\u8bfe 但同一个字符串,有些同事的xcode用print description of输出却又是正常的。 func jsonPrint() { let ff = try! JSONSerialization.data(withJSONObject:self, options: []) let str = String(data:ff, encoding: .utf8) print(str!) 参考博客: swift 的字典在xcode中直接打印 swift打印候让字典中的中文能直接显示 使用了GBK的文件编码方式在Xcode下是无法识别的 老版本的Xcode对带BOOM头的UTF8文件编码也是无法识别的(我的Xcode 5.0.2已经支持带BOM头的UTF8文件了) 出现上述情况一般都是因为跨平台共用文件导致的,Windows,Mac共同使用的代码文件会...
PrettyPrintJSON 一个Xcode 5+插件,可以使用NSJSONSerialization从控制台漂亮地打印JSON。 ## Installation生插件并重新启动Xcode。 像其他插件一样,它将位于~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 。 ##用法在控制台中突出显示JSON字符串,然后使用“ Edit >“ Pretty Print JSON或键盘快捷键Ctrl + J 如果字符串格式正确,它将被附加到控制台底部。 如果发生解析错误,则会打印特定错误。
对于 iOS 开发者来说,控制台输出中文向来是一个痛处,不过现在好了,我们有了 LogChinese. 可以输出数组和字典里面的中文字符,支持 OC 中的NSArray和NSDictionary及其子类(Swift 中的 Array 和 Dictionary 支持中文打印输出。ps:Array & Dictionary 为结构体。。暂没找到修改其输出的方法。。好在本来就支持中文。。 ) 2. 熟悉iOS开发的基础框架,如UIKit、Core Data、Core Animation等。 3. 掌握Xcode开发工具的使用,包括界面设计、代码编辑、调试等。 4. 熟悉iOS应用程序的生命周期、UI设计、布局、数据存储、网络通信等。 5. 熟悉iOS开发的相关工具和技术,如CocoaPods、Git、RESTful API等。 6. 了解苹果审核规则和发布流程,保证APP能够通过审核和上架。 7. 具备良好的代码风格和规范,保证代码的可性和可维护性。 8. 学习和掌握新的技术和框架,如SwiftUI、ARKit、Core ML等,提升APP的功能和性能。