Xcode 8がプラグインを使用できない場合、コンソールは中国語を出力します

2358 ワード

Xcode 8が更新されたため、サードパーティ製プラグインは基本的に使用できません.
コンソールから出力データはUnicode形式であり、使いやすいようにプロジェクトに新規作成する必要がある.mファイルFoundation+Log.m
#import 
#import 

@implementation UIView (Log)

+ (NSString *)searchAllSubviews:(UIView *)superview {
    
    NSMutableString *xml = [NSMutableString string];
    
    NSString *class = NSStringFromClass(superview.class);
    
    class = [class stringByReplacingOccurrencesOfString:@"_" withString:@""];
    
    [xml appendFormat:@"
", class, NSStringFromCGRect(superview.frame)]; for (UIView *childView in superview.subviews) { NSString *subviewXml = [self searchAllSubviews:childView]; [xml appendString:subviewXml]; } [xml appendFormat:@"%@>
", class]; return xml; } - (NSString *)description { return [UIView searchAllSubviews:self]; } @end #pragma mark - unicode @implementation NSDictionary (Log) - (NSString *)descriptionWithLocale:(id)locale { NSMutableString *str = [NSMutableString string]; // { [str appendString:@"{
"]; // [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { [str appendFormat:@"\t%@ = %@,
", key, obj]; }]; // } [str appendString:@"}"]; // , NSRange range = [str rangeOfString:@"," options:NSBackwardsSearch]; if (range.length) { // , [str deleteCharactersInRange:range]; } return str; } @end @implementation NSArray (Log) - (NSString *)descriptionWithLocale:(id)locale { NSMutableString *str = [NSMutableString string]; // [ [str appendString:@"[
"]; // [self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { [str appendFormat:@"%@,
", obj]; }]; // ] [str appendString:@"]"]; // , NSRange range = [str rangeOfString:@"," options:NSBackwardsSearch]; if (range.length) { // , [str deleteCharactersInRange:range]; } return str; } @end

このコードをFoundation+Logに入れると、Unicodeではなくコンソールから中国語を出力することができます.