繁体   English   中英

用嵌套的NSDictionary或带有解码的unicode符号的NSArray打印对象日志的最佳方法是什么?

[英]What is the best way to print a log of object with nested NSDictionary or NSArray with decoded unicode symbols?

我寻找打印带有已解码unicode符号的NSArray和NSDictionary嵌套对象日志的最佳方法。

我知道description属性,但是它以\\ Uxxxx格式打印unicode符号。 我也知道,可以枚举对象并单独打印其键,但是对于大型嵌套对象来说并不舒服。

例如:

NSArray *array = @[@{@"firstName":@"Марк"},@{@"lastName":@"Цекурберг"}];
NSLog(@"array %@", array);
===
array (
        {
        firstName = "\U041c\U0430\U0440\U043a";
    },
        {
        lastName = "\U0426\U0435\U043a\U0443\U0440\U0431\U0435\U0440\U0433";
    }
)

我想得到这个:

array (
        {
        firstName = "Марк";
    },
        {
        lastName = "Цукерберг";
    }
)

我为自己编写了脚本,该脚本采用对象的description字符串并替换所有\\ Uxxxx(和%xx%xx)以优化符号,但是我认为这不是最好的方法。

这是我的Objective C脚本(NSObject扩展),它执行以下操作:
https://github.com/iOS-altima/dumpObject

标准方式:

NSArray *array = @[@{@"firstName":@"Марк%20%F0%9F%98%9C"},@{@"lastName":@"Цекурберг"}];
NSLog(@"array %@", array);
=== result ===
array (
        {
        firstName = "\U041c\U0430\U0440\U043a%20%F0%9F%98%9C";
    },
        {
        lastName = "\U0426\U0435\U043a\U0443\U0440\U0431\U0435\U0440\U0433";
    }
)

dumpObject的方式:

NSArray *array = @[@{@"firstName":@"Марк%20%F0%9F%98%9C"},@{@"lastName":@"Цекурберг"}];
[self dumpObject:array];
=== result ===
array (
        {
        firstName = "Марк 😜";
    },
        {
        lastName = "Цукерберг";
    }
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM