[转]浅谈objective-C中的description方法  

objective-C是C语言的一个扩展集,但是它是一门面向对象语言。如果学过C#或是java的朋友应该知道在C#的类中有一个Tostring()方法,在objective—C中也有一个类似的方法,即description()方法。

description方法是基类NSObject 所带的方法,在自定义的类中,我们可以重载改方法。例如:我们自定义一个people类:

@interface People:NSObject

{

NSString *name;

int age;

}

@ implementation People

{

-(id) init

{

if(self=[super init])

{

name="老三";

age=30;

}

}

}

@end

然后,实例化people类:People *laosan=[People new];

如果我们想看看laosan这个实例的具体信息,我们可以调用,description方法,但是people类里面又没有定义,所以只能调用基类,即NSObject 中的方法。但是这样,得到的信息又和我们所想要的不一样,所以我们必须定义自己的的description方法。即:

-(NSString *)description()

{

return [NSString stringWithFormat:@"姓名: %@ 年龄: %d",name,age];

}

这样,我们再次调用description时输出便是我们想要得到的信息。

objective-C是C语言的一个扩展集,但是它是一门面向对象语言。如果学过C#或是java的朋友应该知道在C#的类中有一个Tostring()方法,在objective—C中也有一个类似的方法,即description()方法。

description方法是基类NSObject 所带的方法,在自定义的类中,我们可以重载改方法。例如:我们自定义一个people类:

@interface People:NSObject

{

NSString *name;

int age;

}

@ implementation People

{

-(id) init

{

if(self=[super init])

{

name="老三";

age=30;

}

}

}

@end

然后,实例化people类:People *laosan=[People new];

如果我们想看看laosan这个实例的具体信息,我们可以调用,description方法,但是people类里面又没有定义,所以只能调用基类,即NSObject 中的方法。但是这样,得到的信息又和我们所想要的不一样,所以我们必须定义自己的的description方法。即:

-(NSString *)description()

{

return [NSString stringWithFormat:@"姓名: %@ 年龄: %d",name,age];

}

这样,我们再次调用description时输出便是我们想要得到的信息。