iOS 反射获取类的属性列表

// 获取对象所有属性:

- (NSArray*)propertyKeys

{

    unsigned int outCount, i;

    objc_property_t *properties = class_copyPropertyList([self class], &outCount);

    NSMutableArray *keys = [[NSMutableArray alloc] initWithCapacity:outCount];

    for (i = 0; i < outCount; i++) {

        objc_property_t property = properties[i];

        NSString *propertyName = [[NSString alloc] initWithCString:property_getName(property) encoding:NSUTF8StringEncoding];

        [keys addObject:propertyName];

    }

    free(properties);

    return keys;

}

 

posted @ 2014-12-18 09:42  Big.Eagle  阅读(993)  评论(0编辑  收藏  举报