黑马程序员技术交流社区
标题:
OC中的description方法
[打印本页]
作者:
562413895@qq.co
时间:
2015-8-23 11:48
标题:
OC中的description方法
1、以 %@ 的格式打印对象时,其实是先调用对象的description方法,对象中若没有,重写父类的description方法,则调用父类的。
例://定义一个Dog类
Dog *d=[Dog new];//定义Dog类的一个对象d
//查看对象的地址
NSLog(@"d=%p",d);//打印结果:d=0x1001002e0
//打印Dog类的对象d
NSLog(@"%@",d);//打印结果:<Dog : 0x1001002e0>,默认打印对象的地址
//重写父类的description对象方法
-(NSString *)description{
return @"junjun";
}
//继续打印Dog类的对象
NSLog(@"%@",d);//打印结果:junjun,即调用了父类的description方法。
//或者重写父类的description类方法
+(NSString *)description{
return @"junjun";
}
//继续打印Dog类的对象,[d class]表示这个类Dog
NSLog(@"%@",[d class]);//打印结果:junjun,即调用了父类的description方法。
2、不要在description方法中同时使用%@和self,这样代表要调用self和description方法,最终会导致程序陷入死循环,循环调用description方法。
例:-(NSString *)description{
return [NSString stringWithFormat:@"%@",self];
}//这样写是不对的
作者:
iphone
时间:
2015-8-23 12:34
问题不错。。。调用方法 要搞清楚 当前对象是谁。还有方法调用的时候子类没有就会找父类要。大概是这个意思吧?
作者:
1374656143
时间:
2015-8-24 03:17
挺不错的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2