美文网首页
iOS为自定义类打印详细信息

iOS为自定义类打印详细信息

作者: mws100 | 来源:发表于2017-05-10 11:11 被阅读368次

在开发中,我们要建很多模型类来存储格式化数据,但是在输出log的时候,只能打印出类名和内存地址。不会像系统的NSArray或NSDictionary一样打印出详细的 每个属性的值。像下面这段代码,我们自定义一个WSModel类,它有name、height两个属性。

@interface WSModel : NSObject

@property (nonatomic, copy) NSString *name;

@property (nonatomic, assign) CGFloat height;

@end

我们创建WSModel的一个对象,并打印。

WSModel *model = [[WSModel alloc] init];
model.name = @"Tom";
model.height = 180.f;
NSLog(@"model = %@", model);

输出是这样的:

model = <WSModel: 0x60000003f2a0>

可以看到name,height的值并没有打印出来。
再打印个NSDictionary看看:

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"Tom", @"name", @(180.f), @"height", nil];
NSLog(@"dic = %@", dic);

打印是这样的:
dic = {
    height = 180;
    name = Tom;
}

那怎么让自定义对象,既打印出地址 又打印出各属性值呢?答案是覆写自定义类的description方法。如下:

@implementation WSModel

- (NSString *)description {
    return [NSString stringWithFormat:@"<%@: %p, %@>",
            [self class],
            self,
            @{@"name":_name,
              @"height":@(_height)
              }
            ];
}

@end

此时再看下新建对象的打印:

model = <WSModel: 0x60000003e9e0, {
    height = 180;
    name = Tom;
}>

我们在把类名和指针地址按照系统默认格式打印,再把所有的属性包装到一个字典里,便于以后扩展。如果新增一个属性,就在字典中加个key value即可。
很简单,不提供Demo了。如果帮到了你,请点击喜欢❤️

相关文章

  • iOS为自定义类打印详细信息

    在开发中,我们要建很多模型类来存储格式化数据,但是在输出log的时候,只能打印出类名和内存地址。不会像系统的NSA...

  • 调试技巧

    参考iOS各种调试技巧 1、NSLog 优化,打印文件、方法、代码行的详细信息 示例 打印信息如下: 2、方法执行...

  • iOS 自定义字体

    iOS 自定义字体打印 2019-7-8 fontFamilyName:'Copperplate' fontFam...

  • Java Properties的常见使用

    PropertiesProperties类及其方法打印JVM参数打印自定义.properties文件中的值获取值 ...

  • iOS - Description

    自定义 po 打印,print & NSLog 类的打印输出 description - print 日志输出 d...

  • 自定义身份认证

    自定义身份认证 在api的drf_views中加入: UsersviewSet:用户详细信息类中增加字段 api的...

  • npm --verbose命令

    显示安装详细信息 npm install --verbose在安装命令添加参数--verbose看打印详细信息

  • iOS自定义打印

    前言 我们在iOS开发中遇到相同的打印相同的方法,在输出日志中无法辨别这个输出到底来自哪个类,这时就可以用到自定义...

  • 动态链接库加载拾遗&dladdr函数使用

    1.获取APP全部自定义类名 最近需要有个需求,涉及到runtime打印所有的自定义类名,那么如何区分自己的类和系...

  • iOS 自定义window 导致becomeFirstRespo

    问题描述: iOS游戏接了自定义window类SDK或者自定义了window,becomeFirstRespon...

网友评论

      本文标题:iOS为自定义类打印详细信息

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