description 和 debugDescription 都是用来输出调试信息的,每个类内部的实现可能都会不一样。
相同点:都会在控制台中输出日志信息;
不同点:debugDescription方法是开发者在调试器中以控制台命令打印对象才调用。在NSObject中此方法直接调用了description方法;
在程序中打断点,使用 po XX,就可以调用 XX对象的debugDescription方法,在控制台中输出信息;
(lldb) po person
HJPerson 0x1365dbc10
description 和 debugDescription 的写法:
//description 中可以打印对象的属性内容
-(NSString *)description
{
return [NSString stringWithFormat:@"%@ %@", _firstName, _lastName];
}
//debugDescription 中打印对象的类型和指针
-(NSString *)debugDescription
{
return [NSString stringWithFormat:@"%@ %p", [self class], self];
}