有时候我们从沙盒文件或者网络上拿到一个数组,其中的元素是一个中文单词,比如:
NSArray *array = @[@"康忙北鼻", @"梅川酷子", @"尼古定", @"张三疯", @"赵日天"];
这时候,打印这个array,那么很可能打出来的元素显示的是中文编码:
解决方案如下:
1.给NSArray类添加分类(command + 逗号 调出如图界面):
选中上图那个文件后,在下图中随便取个名字,当然,见文知意最好。
2.在.m文件中重写
- (NSString *)descriptionWithLocale:(id)locale;方法
在这里,贴上代码:方便复制:
- (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;
}
ok, 再次输出就是中文了。
字典同理,具体代码:
- (NSString *)descriptionWithLocale:(id)locale {
NSArray *allKeys = [self allKeys];
NSMutableString *str = [[NSMutableString alloc] initWithFormat:@"{\t\n "];
for (NSString *key in allKeys) {
id value= self[key];
[str appendFormat:@"\t \"%@\" = %@,\n",key, value];
}
[str appendString:@"}"];
return str;
}