description:重写对象的这个方法,会在打印的时候显示出自定义的description中的内容
debugDescription:方法是在开发者在调试器中以控制台命令打印对象时才调用的。 在NSObject类的默认实现中,NSLog打印是只是直接调用了description,debugDescription是通过命令来调用的,如:

现在有个SomeObject类,它重写了description和debugDescription方法:

@implementation SomeObject

- (NSString *)description
{
return [NSString stringWithFormat:@"%@", @{@"title":@"title_value",
@"name":@"name_value",
@"desc":@"desc_value"
}];
}

- (NSString *)debugDescription
{
return [NSString stringWithFormat:@"%@ %p", [self class], self];
}
@end

调用的时候
SomeObject *object = [[SomeObject alloc] init];
NSLog(@"object = %@", object);
//Breakpoint here,在这打断点

这个时候在控制台打印:
2017-11-08 10:29:44.878362+0800 FrameworkTest[2596:71158] object = {
desc = "desc_value";
name = "name_value";
title = "title_value";
}
(lldb)

通过LLDB的“po”命令可以完成对象的打印工作,输出如下:
2017-11-08 10:29:44.878362+0800 FrameworkTest[2596:71158] object = {
desc = "desc_value";
name = "name_value";
title = "title_value";
}
(lldb) po object
tobject = SomeObject 0x6040002056d0

通过po命令将debugDescription中的内容打印出来,这样做的好处是,你可能不想把类名和指针地址这种额外的信息放到普通的描述信息里,但是确希望调试的时候能方便的看到它们,这种情况下就可以使用这种输出方式来实现。Foundation框架中的NSArray就是这么做的:
如:
NSArray *array = @[@1, @2, @3];
NSLog(@"%@", array);
//在这打断点

运行代码输出:
2017-11-08 10:44:30.410018+0800 FrameworkTest[2703:87863] (
1,
2,
3
)
(lldb) po array
<__NSArrayI 0x60c000245550>(
1,
2,
3
)

要点:
1、实现descr方法返回一个有意义的字符串,用以描述该实例;
2、若想在调试时打印出更详尽的描述信息,则应该实现debugDescription方法。

iOS description的更多相关文章

  1. iOS ShareSDK 使用

    流量精灵软件中,也在大部分地方使用到了shareSDK 这个三方开源库.具体的有两种需求 a.弹出所有分享模块 b.只弹出指定的平台:如微信朋友圈和QQ . 配置方法,三方库中也很详细,这里我只有写出 ...

  2. [转]About the security content of iOS 8

    Source:http://support.apple.com/kb/HT6441 For the protection of our customers, Apple does not disclo ...

  3. React Native之code-push的热更新(ios android)

    React Native之code-push的热更新(ios android) React Native支持大家用React Native技术开发APP,并打包生成一个APP.在动态更新方面React ...

  4. zabbix使用介绍

    zabbix自定义监控项 1.创建主机组,可以根据redis.mysql.web等创建对于的主机组 2.创建主机 3.创建Screens 4.自定义监控项 zabbix_agentd.conf配置文件 ...

  5. iOS出现<object returned empty description>的解决方法

    iOS出现<object returned empty description>的解决方法: 使用  [str length] <= 0  判断处理

  6. 【Swift】ios开发中巧用 description 打印对象时,打印对象的属性

    ios开发中我们打印对象的时候,会直接输出对象地址,这样不方便我们开发.我们可以 巧用 description 打印对象时,输出对象的属性 在oc中直接重写即可.swift中需要遵守Printable ...

  7. iOS NSNumber转化NSString之description

    我们经常需要把一个数字转成字符串,当你不需要配合其他字符串的时候可以用description. /** description属于NSObject 值是NSNumber时候,不用stringWithF ...

  8. 李洪强iOS开发之【Objective-C】07-自定义构造方法和description方法

    知识回顾 在前面已经介绍了如何定义类和创建并初始化对象,比如有Student这个类 1.Student.h 1 #import <Foundation/Foundation.h> 2 3 ...

  9. 李洪强iOS开发之OC语言description方法和sel

    OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象 ...

随机推荐

  1. jenkins发布java项目

    前言:这台jenkins服务器的环境是前几篇博客一步步做实验做过来,如果有想做这篇博客的实验的朋友,可以移驾去看一下前几篇博客,另外有看着博客做完的博友,可以在下方留言,证明我做的这些都是对的,有看着 ...

  2. python装饰器的深度探究

    1.讲装饰器一般讲到这种代码就可以了,但这篇博客会介绍更多: def deco(func): def wrapper(): print("start") func() #调用函数 ...

  3. Linux下Shell的快捷键(转)

    下述所有命令在Linux/Unix的shell下有效,这里以bash为主.如有出入,以你自己的服务器为准.本文所指的Linux主要指RHEL/CentOS,Unix指的是FreeBSD,这也是Unix ...

  4. SQL Server 监控系列 —— 二

    http://www.cnblogs.com/bhtfg538/archive/2011/01/21/1939706.html

  5. indy9在程序关闭时出现terminate thread timeout的BUG解决办法

    indy9在程序关闭时出现terminate thread timeout的BUG解决办法 INDY9线程有BUG,在退出程序的时候会报错:terminate thread timeout(终止线程超 ...

  6. 【CSS】使用CSS控制文字过多自动省略号

    使用CSS可以设置一下样式: <style> u,small{ overflow: hidden; text-overflow: ellipsis; display: -webkit-bo ...

  7. sublime text 3和sublime text 2的 package control 插件 代码

    SECURITY NOTICE: The Python code used by this method does not use SSL because Sublime Text on Linux ...

  8. Redis 数据结构解析和命令指南

    命令參考文档:redis commands - 你或许已经知道Redis并非简单的key-value存储.实际上他是一个数据结构server.支持不同类型的值. 也就是说.你不必只把字符串当作键所指向 ...

  9. NYOJ 722 数独 【DFS】+【预处理】

    数独 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 数独是一种运用纸.笔进行演算的逻辑游戏.玩家须要依据9×9盘面上的已知数字,推理出全部剩余空格的数字,并满足每一 ...

  10. VS2012+Win7站点公布具体步骤

    VS2012+Win7站点公布详细步骤 本机环境: 本文分三个部分介绍Web项目公布的常规方法,大神级别能够略过,主要是为了方便一些刚開始学习的人. 第一部分:VS2012把项目公布到文件系统. 第二 ...