簡體   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