description
方法是NSObject
类的一个类方法。我猜这是一个类方法,因为NSObject
不能初始化。
当我这样做时:
NSLog(@"%@", [NSObject description]);
输出:
NSObject
但是当我创建一个直接继承自NSObject
的类时,并这样做:
MyNewClass *obj = [[MyNewClass alloc] init];
NSLog(@"%@", obj);
输出如下:
<MyNewClass: 0x4b234a0>
我没有特别覆盖description
方法,它是如何被我的新类覆盖的?
这是因为NSObject
有两个方法:
+ (NSString *)description; // Class method
- (NSString *)description; // Instance method
前者在NSObject类中定义,后者在NSObject协议中定义。