Object-C 反射获得对象的属性和值

@autoreleasepool {
        
        TestObj *obj = [[TestObj alloc]init];
        obj.age = @"22";
        obj.name = @"lisi";
        obj.gender = @"male";
        
        unsigned int count;
        objc_property_t *properties = class_copyPropertyList([obj class], &count);
        for(int i=0;i<count;i++){
            objc_property_t property = properties[i];
            NSString *key = [[NSString alloc]initWithCString:property_getName(property) encoding:NSUTF8StringEncoding];
            //kvc读值
            NSString *value = [obj valueForKey:key];
            NSLog(@"%@->%@",key,value);
        }
    }

你可能感兴趣的:(反射,Object-C)