Тип класса Цель C

В NSObject Протокол, он определяет метод, который похож на это:

-(Class) class

Какой тип объекта является объектом класса? Или это даже объект? Что я могу сделать с объектом? Могу ли я получить базовый класс или принятые протоколы?

2 ответа

Решение

Class сам по себе класс, определенный средой выполнения Objective C, сродни Class класс на Java. Например, вы можете использовать функцию class_getClassName() чтобы получить название класса:

NSObject *o = [[[NSObject alloc] init] autorelease];
NSLog(@"%s\n", class_getClassName([o class]));  // prints "NSObject"

Вы можете сделать все виды самоанализа / отражения с Class объекты; см. ссылку на среду выполнения Objective C для деталей.

Сейчас

NSObject *o = [[NSObject alloc]init];
NSLog(@"%s\n", object_getClassName([o class]));

object_getClassName вместо class_getClassName

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