OC 解决NSArray、NSDictionary直接打印中文出现乱码的问题

在iOS开发中,经常需要查看数组中得元素是否是自己想要的,但是苹果并没有对直接打印数组中得中文作处理,直接打印就会出现一堆很讨厌的东西,解决其实很简单,就是需要通过为NSArray添加分类,重写 - (NSString *)descriptionWithLocale:(id)locale方法即可

代码如下:

复制代码
#import "NSArray+Log.h"

@implementation NSArray (Log)


- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *str = [NSMutableString stringWithFormat:@"%lu (\n", (unsigned long)self.count];
    
    for (id obj in self) {
        [str appendFormat:@"\t%@, \n", obj];
    }
    
    [str appendString:@")"];
    
    return str;
}
@end
复制代码

同理要解决NSDictionary乱码问题,也需要为NSDictionary类添加一个分类,重写  - (NSString *)descriptionWithLocale:(id)locale方法

代码如下:

复制代码
 1 #import "NSDictionary+MyLog.h"
 2 
 3 @implementation NSDictionary (MyLog)
 4 
 5 
 6 - (NSString *)descriptionWithLocale:(id)locale
 7 {
 8     NSArray *allKeys = [self allKeys];
 9     NSMutableString *str = [[NSMutableString alloc] initWithFormat:@"{\t\n "];
10     for (NSString *key in allKeys) {
11         id value= self[key];
12         [str appendFormat:@"\t \"%@\" = %@,\n",key, value];
13     }
14     [str appendString:@"}"];
15     
16     return str;
17 }
18 @end
复制代码

转载于:https://www.cnblogs.com/Peak-Banish/p/4062432.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值