Можно ли программно получить свойства объекта в target-c без использования методов времени выполнения? Я спрашиваю только потому, что кажется ненужным проверять его во время выполнения, когда оно не изменится,Я подумываю об этом:
MyObject *foo = [[MyObject alloc] init];
NSDictionary *propertiesNamesAndValues = [foo getAllProperties];
В настоящее время мое решение выглядит так:
id currentClass = [MyObject class];
NSString *propertyName;
unsigned int outCount, i;
objc_property_t *properties = class_copyPropertyList(currentClass, &outCount);
for (i = 0; i < outCount; i++)
{
objc_property_t property = properties[i];
propertyName = [NSString stringWithCString:property_getName(property)];
NSLog(propertyName);
NSLog(@"%@",[foo valueForKey:propertyName]);
}