Получить все имена переменных или атрибуты @interface - PullRequest
0 голосов
/ 12 января 2012

Я хочу, чтобы все имена переменных или атрибуты интерфейса или класса были заданы в c.

Я могу получить и установить значение переменной динамически, используя valueForKey: message.

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Если вы хотите получить все «свойства» для класса, вы можете использовать среду выполнения Objective C для получения этих данных:

unsigned int propertyCount, i;
objc_property_t *properties = class_copyPropertyList([self class], &propertyCount);

for(i = 0; i < propertyCount; i++)
{
    objc_property_t property = properties[i];
    NSString *propertyName = [NSString stringWithUTF8String:property_getName(property)];
}

free(properties);

С этим объектом вы можете получить все связанные метаданныес данным свойством.Хотя это не для слабонервных (и это API на основе C).Определить информацию о каждом свойстве (например, о его политике и типе) непросто.

1 голос
/ 12 января 2012

Взгляните на Objective-C Runtime Reference и, в частности, class_copyIvarList и class_copyPropertyList функции. Использование этих функций времени выполнения должно быть тем, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...