美文网首页iOS开发文集
Xcode控制台打印乱码,新招

Xcode控制台打印乱码,新招

作者: 十一岁的加重 | 来源:发表于2016-05-14 23:41 被阅读12884次

    之前可就是扔一个分类在工程里,今天又遇到了,关键项目是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

    ```

    相关文章

      网友评论

      • 九剑仙:挺实用的文章,为啥没赞,你要手动去投稿,就投程序员,ios相关的
        十一岁的加重:@九剑仙 原来要投稿啊,我还说,别人的文章写得不咋样还上榜了呢,多谢提醒
      • KyneChen:试过把数据转过UTF-8吗?
        KyneChen: @十一岁的加重 好吧,谢谢
        十一岁的加重:@KyneChen 有个插件,可以直接展示中文,而且你打印的东西,他还能直接点击跳到打印处
        https://github.com/iStarEternal/StarConsoleLink
      • 代码路上的小白:这也算新招?
        十一岁的加重:@代码路上的小白 那你们平时怎么看这种乱码

      本文标题:Xcode控制台打印乱码,新招

      本文链接:https://www.haomeiwen.com/subject/lzkvrttx.html