重写NSArray和NSDictionary分类Category就OK了!
导入头文件
#import <objc/runtime.h>
+ (void)load { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ zxf_swizzleSelector([self class], @selector(descriptionWithLocale:indent:), @selector(zxf_descriptionWithLocale:indent:)); }); } - (NSString *)zxf_descriptionWithLocale:(id)locale indent:(NSUInteger)level { return [self stringByReplaceUnicode:[self zxf_descriptionWithLocale:locale indent:level]]; } - (NSString *)stringByReplaceUnicode:(NSString *)unicodeString { NSMutableString *convertedString = [unicodeString mutableCopy]; [convertedString replaceOccurrencesOfString:@"\U" withString:@"\u" options:0 range:NSMakeRange(0, convertedString.length)]; CFStringRef transform = CFSTR("Any-Hex/Java"); CFStringTransform((__bridge CFMutableStringRef)convertedString, NULL, transform, YES); return convertedString; } static inline void zxf_swizzleSelector(Class theClass, SEL originalSelector, SEL swizzledSelector) { Method originalMethod = class_getInstanceMethod(theClass, originalSelector); Method swizzledMethod = class_getInstanceMethod(theClass, swizzledSelector); BOOL didAddMethod = class_addMethod(theClass, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)); if (didAddMethod) { class_replaceMethod(theClass, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); } else { method_exchangeImplementations(originalMethod, swizzledMethod); } }