#import <Foundation/Foundation.h>
#import <objc/runtime.h>
@interface NSObject (Property)
//将对象属性封装到字典,并返回字典
-(NSDictionary *)propertyDictionary;
@end
@implementation NSObject (Property)
-(NSDictionary *)propertyDictionary
{
//创建可变字典
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
unsigned int outCount;
objc_property_t *props = class_copyPropertyList([self class], &outCount);
for(int i=0;i<outCount;i++){
objc_property_t prop = props[i];
NSString *propName = [[NSString alloc]initWithCString:property_getName(prop) encoding:NSUTF8StringEncoding];
id propValue = [self valueForKey:propName];
if(propValue){
[dict setObject:propValue forKey:propName];
}
}
free(props);
return dict;
}
@end
#import <objc/runtime.h>
@interface NSObject (Property)
//将对象属性封装到字典,并返回字典
-(NSDictionary *)propertyDictionary;
@end
@implementation NSObject (Property)
-(NSDictionary *)propertyDictionary
{
//创建可变字典
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
unsigned int outCount;
objc_property_t *props = class_copyPropertyList([self class], &outCount);
for(int i=0;i<outCount;i++){
objc_property_t prop = props[i];
NSString *propName = [[NSString alloc]initWithCString:property_getName(prop) encoding:NSUTF8StringEncoding];
id propValue = [self valueForKey:propName];
if(propValue){
[dict setObject:propValue forKey:propName];
}
}
free(props);
return dict;
}
@end