原来打印
dict = {
key1 = abc;
key2 = "\U4e2d\U6587";
}
array = (
abc,
"\U4e2d\U6587"
)
使用方法:将 NSArray+Extension 和 NSDictionary+Extension 两个分类拖入项目即可
打印效果 :
2015-08-08 10:19:36.294 ICUnicodeDemo[2135:50801]
dict = {
key1 = abc,
key2 = 中文
}
array = [
abc,
中文
]
代码git:https://github.com/icoder20150719/ICUnicodeDemo
解释
- (void)viewDidLoad {
[super viewDidLoad]; //创建字典 NSDictionary *dict = @{@"key1" : @"abc", @"key2" : @"中文", };
//创建数组
NSArray *array = @[@"abc",@"中文"];
//打印数组和字典 NSLog(@" \n dict = %@ \n array = %@",dict,array);
}
后台打印:
字典和数组中都出现了Unicode编码字符串问题 ,无法显示出中文
思考字典和数组在打印的过程中分别会调哪些方法:
1、重写系统数组的几个返回字符串的方法
2、打上短点
断点停在 -(NSString *)descriptionWithLocale:(id)locale
过掉断点
3、后台打印: array = descriptionWithLocale
证明:数组在打印时会调用descriptionWithLocale来把自己格式化成字符串 ;
自定义数组格式化descriptionWithLocale 返回字符串
字典同理:
现在看看后台打印效果:
代码git:https://github.com/icoder20150719/ICUnicodeDemo