1.description基本概念
NSLog(@"%@", objectA);這會(huì)自動(dòng)調(diào)用objectA的description方法來輸出ObjectA的描述信息.
description方法默認(rèn)返回對(duì)象的描述信息(默認(rèn)實(shí)現(xiàn)是返回類名和對(duì)象的內(nèi)存地址)
description方法是基類NSObject 所帶的方法,因?yàn)槠淠J(rèn)實(shí)現(xiàn)是返回類名和對(duì)象的內(nèi)存地址, 這樣的話,使用NSLog輸出OC對(duì)象,意義就不是很大,因?yàn)槲覀儾⒉魂P(guān)心對(duì)象的內(nèi)存地址,比較關(guān)心的是對(duì)象內(nèi)部的一些成變量的值偿曙。因此,會(huì)經(jīng)常重寫description方法,覆蓋description方法的默認(rèn)實(shí)現(xiàn)。
例子:
創(chuàng)建一個(gè)Person類碱茁,創(chuàng)建一個(gè)Person對(duì)象诸衔,并打印該對(duì)象:
@property (nonatomic, strong) Person *person;
self.person= [[Person alloc] init];
NSLog(@"%@", self.person);
打印結(jié)果:
然而我們并不關(guān)心對(duì)象的內(nèi)存地址脑奠,此時(shí)我們重寫Person類的description方法:
- (NSString *)description
{
? ? return[NSStringstringWithFormat:@"Person",_name,_age];
}
打印結(jié)果:
這樣我們通過重寫description方法闸拿,獲取我們自己想要的打印內(nèi)容夫凸。