将字典(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共同使用的代码文件会...
PrettyPrint
JSON
一个
Xcode 5+插件,可以使用NS
JSONSerialization从
控制台漂亮地
打印JSON。
## Installation生
成插件并重新启动
Xcode。 像其他插件一样,它将位于~/Library/Application Sup
port/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的功能和性能。