iOS開發小技巧--字典和數組的中文輸出


一、在解析json數據的時候,得到的集合對象或者數組對象在用%@打印的時候回出現類似亂碼的情況。如圖:

在iOS中打印字典或者數組對象,系統會默認調用字典對象和數組對象的descriptionWithLocale:方法。所以解決方案就是增加在.m文件中重寫了兩個descriptionWithLocale:方法。以后用的時候直接將文件拖進項目。

 

 1 //
 2 //  NSDictionary+Log.m
 3 //  05-掌握-多值參數
 4 //
 5 //  Created by xiaomage on 15/7/13.
 6 //  Copyright (c) 2015年 小碼哥. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 
11 @implementation NSDictionary (Log)
12 - (NSString *)descriptionWithLocale:(id)locale
13 {
14     NSMutableString *string = [NSMutableString string];
15     
16     // 開頭有個{
17     [string appendString:@"{\n"];
18     
19     // 遍歷所有的鍵值對
20     [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
21         [string appendFormat:@"\t%@", key];
22         [string appendString:@" : "];
23         [string appendFormat:@"%@,\n", obj];
24     }];
25     
26     // 結尾有個}
27     [string appendString:@"}"];
28     
29     // 查找最后一個逗號
30     NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
31     if (range.location != NSNotFound)
32     [string deleteCharactersInRange:range];
33     
34     return string;
35 }
36 @end
37 
38 @implementation NSArray (Log)
39 
40 - (NSString *)descriptionWithLocale:(id)locale
41 {
42     NSMutableString *string = [NSMutableString string];
43     
44     // 開頭有個[
45     [string appendString:@"[\n"];
46     
47     // 遍歷所有的元素
48     [self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
49         [string appendFormat:@"\t%@,\n", obj];
50     }];
51     
52     // 結尾有個]
53     [string appendString:@"]"];
54     
55     // 查找最后一個逗號
56     NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
57     if (range.location != NSNotFound)
58     [string deleteCharactersInRange:range];
59     
60     return string;
61 }
62 
63 @end

 

 

  • 效果圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM