1.description基本概念
NSLog(@"%@", objectA);這會自動調(diào)用objectA的description方法來輸出ObjectA的描述信息.
description方法默認(rèn)返回對象的描述信息(默認(rèn)實(shí)現(xiàn)是返回類名和對象的內(nèi)存地址)
description方法是基類NSObject 所帶的方法,因?yàn)槠淠J(rèn)實(shí)現(xiàn)是返回類名和對象的內(nèi)存地址, 這樣的話,使用NSLog輸出OC對象,意義就不是很大,因?yàn)槲覀儾⒉魂P(guān)心對象的內(nèi)存地址,比較關(guān)心的是對象內(nèi)部的一些成變量的值。因此,會經(jīng)常重寫description方法,覆蓋description方法的默認(rèn)實(shí)現(xiàn)。
例子:
創(chuàng)建一個Person類,創(chuàng)建一個Person對象,并打印該對象:
@property (nonatomic, strong) Person *person;
self.person= [[Person alloc] init];
NSLog(@"%@", self.person);
打印結(jié)果:

然而我們并不關(guān)心對象的內(nèi)存地址,此時我們重寫Person類的description方法:
- (NSString *)description
{
? ? return[NSStringstringWithFormat:@"Person",_name,_age];
}
打印結(jié)果:

這樣我們通過重寫description方法,獲取我們自己想要的打印內(nèi)容。