一个返回所有属性值的函数

时间:2013-05-26 14:09:33

标签: objective-c

是否可以将一个对象实例赋予一个函数,并且该函数返回该实例的所有属性的值?该函数应适用于任何类

1 个答案:

答案 0 :(得分:2)

这是解决方案:

unsigned int numberOfAttributs;
objc_property_t *attributes = class_copyPropertyList([obj class], &numberOfAttributes);

for (unsigned int i = 0; i < numberOfAttributes; i++) {

    objc_property_t attribute = attributes[i];  
    NSString *attributeName = [NSString stringWithUTF8String: property_getName(attribute)];
    NSLog(@"%@", attributeName);
    id attributeValue = [obj valueForKey:attributeName];
    NSLog(@"%@", attributeValue);
}