description方法 【死循环】

#import "MaTsonga .h"


@implementation MaTsonga

-(NSString *)description{
    return [NSString stringWithFormat:@"{name:%@,age:%i}",self.name,self.age];
}

@end

#import "MaTsonga .h"


int main(int argc, const char * argv[]) {

    MaTsonga *ma=[[MaTsonga alloc]init];

    ma.name=@"似不似傻";
    ma.age=24;
    
    NSLog(@"%@",ma);//此时会调用对象description方法返回对应的描述信息
    
    
    return 0;
}

注意NSLog中的格式符是%@,当使用%@输出一个对象时,ObjC会调用个对象的description返回对应的信息进行输出,默认情况下如果我们不重写description方法,输出内容是类名和地址。

需要强调的是千万不要在description中打印输出self,因为当输出self时会调用该对象的description方法,如此一来就会造成死循环。

    原文作者:MatTsonga
    原文地址: https://segmentfault.com/a/1190000008915130
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞