Xcode控制台打印乱码,新招

之前可就是扔一个分类在工程里,今天又遇到了,关键项目是Swift的,想想把之前写的分类托进来还得改改太麻烦了,于是是想换另外一种新鲜的做法。

一、复制乱码

二、放入Chrome的网页检查器里的控制台,然后回车,就能查看了


ffff

更新:处理更优的做法。一个分类搞定

```objc

#import@implementation UIView(Log)

+ (NSString *)searchAllSubviews:(UIView *)superview

{

NSMutableString *xml = [NSMutableString string];

NSString *class = NSStringFromClass(superview.class);

class = [class stringByReplacingOccurrencesOfString:@"_" withString:@""];

[xml appendFormat:@"<%@ frame=\"%@\">\n", class, NSStringFromCGRect(superview.frame)];

for (UIView *childView in superview.subviews) {

NSString *subviewXml = [self searchAllSubviews:childView];

[xml appendString:subviewXml];

}

[xml appendFormat:@"\n", class];

return xml;

}

- (NSString *)description

{

return [UIView searchAllSubviews:self];

}

@end

@implementation NSDictionary (Log)

- (NSString *)descriptionWithLocale:(id)locale

{

NSMutableString *string = [NSMutableString string];

// 开头有个{

[string appendString:@"{\n"];

// 遍历所有的键值对

[self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

[string appendFormat:@"\t%@", key];

[string appendString:@" : "];

[string appendFormat:@"%@,\n", obj];

}];

// 结尾有个}

[string appendString:@"}"];

// 查找最后一个逗号

NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];

if (range.location != NSNotFound)

[string deleteCharactersInRange:range];

return string;

}

@end

@implementation NSArray (Log)

- (NSString *)descriptionWithLocale:(id)locale

{

NSMutableString *string = [NSMutableString string];

// 开头有个[

[string appendString:@"[\n"];

// 遍历所有的元素

[self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

[string appendFormat:@"\t%@,\n", obj];

}];

// 结尾有个]

[string appendString:@"]"];

// 查找最后一个逗号

NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];

if (range.location != NSNotFound)

[string deleteCharactersInRange:range];

return string;

}

@end

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容