Можно ли определить, какие свойства класс имеет программно? - PullRequest
2 голосов
/ 02 февраля 2012

Можно ли программно определить, какими свойствами обладает класс?Я хочу посмотреть, какие свойства определил класс (или подкласс).Мне сказали, что это связано с тем, что называется интроспекцией во время выполнения.Я нашел эту статью , но она кажется лишь верхушкой айсберга.

Итак, можно ли определить, какие свойства класс имеет программно?Как?

Редактировать:

Я работаю на iOS, а не на Mac OS X. Какие заголовки мне нужно импортировать?

1 Ответ

4 голосов
/ 02 февраля 2012

Руководство по программированию Objective-C Runtime включает в себя раздел о перечислении свойств . Соответствующий фрагмент, который фактически получает список:

id LenderClass = objc_getClass("Lender");
unsigned int outCount;
objc_property_t *properties = class_copyPropertyList(LenderClass, &outCount);

Затем вы используете функции свойств среды выполнения, чтобы получить любую необходимую информацию о каждом свойстве в списке.

...