------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、description介绍
1、OC中通过 NSLog(@"%@",ObjectName);输出一个对象, 默认会调用对象的description方法。
输出格式为类名:地址。
如:#import <Foundation/Foundation.h>
@interface Student : NSObject
@porperty NSString *name;
@property int age;
- (void) initWithName:(NSString*)name andAge:(int)age;
@end // Student
@implementation Student
- (void) initWithName:(NSString*)name andAge:(int)age
{
self.name = name;
self.age = age;
}
- (NSString*) description
{
return [NSString stringWithFormater:@"name=%@,age=%d",self.name,self.age];
}
@end // Student
2、这个时候如果调用NSLog(@"%@",[[Student alloc] initWithName:@"znh" andAge:18]); 则会输出
name=znh,age=18 相当与C#里面的toString(); 函数。
3、如果类里面没有description方法。就调用从父类NSObject继承过来的方法。输出类名:对象地址。
还有一个 + (NSString*) description 默认打印类名。
注意:
- (NSString*) description
{
return [NSString stringWithFormater:@"%@",self]; // × 会陷入死循环,因为self是当前类的对象,输出他本身相当于调用其的description。而在方法内部掉用方法本身就是递归(死递归)。
}