“描述”方法究竟在哪里被覆盖?

时间:2015-10-25 08:41:45

标签: objective-c nsobject foundation

description方法是NSObject类的类方法。我想这是一个类方法,因为NSObject无法初始化。

当我这样做时:

NSLog(@"%@", [NSObject description]);

打印出来:

NSObject

但是当我创建一个直接继承自NSObject的类时,执行此操作:

MyNewClass *obj = [[MyNewClass alloc] init];
NSLog(@"%@", obj);

这打印出如下内容:

<MyNewClass: 0x4b234a0>

我没有专门覆盖description方法,它是如何被我的新类覆盖的?

1 个答案:

答案 0 :(得分:1)

这是因为NSObject有两种方法:

+ (NSString *)description; // Class method 
- (NSString *)description; // Instance method 

前者在NSObject class中定义,后来在NSObject Protocol中定义。