zoukankan      html  css  js  c++  java
  • iOS——打印内容,NSLog自定义对象的内容如何打印出来,而不是只打印地址

    开发中通过NSLog的%@打印自定义的对象时,
    只会打印出一个对象的内存地址。

    例如:(xxxview:0xb677420)

    但是打印系统的类型,例如NSArray就不会这样。

    这是为什么呢?

    原因:打印到日志时,对象会收到description消息,该方法所返回的描述信息将取代“%@”。

    所以重写这个description方法就可以设定打印的东西。

    还有一个方法可以重写,就是debugDescription方法:是开发者在调试器中以控制台命令打印对象时才调用的。在NSObject类的默认实现中,此方法只是直接调用了description。

    当希望调试的时候可以看见打印的地址和信息,在正常打印的时候不需要地址时候,就可以像下面这样重写两个方法。

     - (NSString *)description
    {
        return [NSStringstringWithFormat:@"<%@>",@{@"name":_name,@"work":_work}];
    }
    
    - (NSString *)debugDescription
    {
        return [NSStringstringWithFormat:@"<%@ : %p, %@>",[selfclass],self,@{@"name":_name,@"work":_work}];
    }
    
  • 相关阅读:
    Innodb加载数据字典 && flush tables
    MySQL purge log简单吗
    MySQL ddl丢表
    数据库 一致性读&&当前读
    java数组
    customer.java
    java构造函数
    EXCEL 2007施工进度横道图制作步骤及实战练习
    如何利用office绘制施工进度计划横道图?
    计算器
  • 原文地址:https://www.cnblogs.com/66it/p/4962462.html
Copyright © 2011-2022 走看看