Я сделал еще несколько копаний и нашел то, что хотел, в Objective-C Runtime Programming Guide . Вот как я реализовал то, что хотел сделать в своем первоначальном вопросе, опираясь в основном на пример кода Apple:
#import <Foundation/NSObjCRuntime.h>
#import <objc/runtime.h>
- (void)save {
id currentClass = [self 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)];
[self doSomethingCoolWithValue:[self valueForKey:propertyName]];
}
}
Я надеюсь, что это поможет кому-то еще искать способ доступа к именам свойств объекта программно.