Где именно метод "description" переопределяется?

description Метод является классовым методом NSObject учебный класс. Я думаю, что это метод класса, потому что NSObject не может быть инициализирован.

Когда я делаю это:

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

Распечатывает:

NSObject

Но когда я создаю класс, который напрямую наследует от NSObjectи сделайте это:

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

Это печатает что-то вроде:

<MyNewClass: 0x4b234a0>

Я специально не отменял description метод, как это было переопределено моим новым классом?

1 ответ

Решение

Это потому NSObject имеет два метода:

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

Прежний определяется в классе NSObject, а позже - в протоколе NSObject.

Другие вопросы по тегам