解决Xcode打印 NSArray 和 NSDictionary 乱码的问题(输出中文Log)
1.Xcode9.0之前控制台打印中文方法
#import "NSArray+Log.h"
@implementation NSArray (Log)
- (NSString *)descriptionWithLocale:(id)locale
2.Xcode9.0之后推出了新的API,当你调用这个新的api时,会自动判断以上四种情况来自动的帮助我们转译或做处理.
#import "NSArray+Log.h"
@implementation NSArray (Log)
- (NSString *)descriptionWithLocale:(nullable id)locale indent:(NSUInteger)level{
NSMutableString *stringM = [NSMutableString string];
[stringM appendString:@"(\n"];
[self enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[stringM appendFormat:@"\t%@,\n",obj];
}];
[stringM appendString:@")\n"];
return stringM;
}
@end
@implementation NSDictionary (Log)
- (NSString *)descriptionWithLocale:(nullable id)locale indent:(NSUInteger)level{
NSMutableString *stringM = [NSMutableString string];
[stringM appendString:@"{\n"];
[self enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
[stringM appendFormat:@"\t%@ = %@;\n",key,obj];
}];
[stringM appendString:@"}\n"];
return stringM;
}
@end
总结:直接添加分类即可,不需要进行引入