+ (NSDictionary *) entityToDictionary:(id)entity

{

Class clazz = [entity class];

u_int count;

objc_property_t* properties = class_copyPropertyList(clazz, &count);

NSMutableArray* propertyArray = [NSMutableArray arrayWithCapacity:count];

NSMutableArray* valueArray = [NSMutableArray arrayWithCapacity:count];

for (int i = 0; i < count ; i++)

{

objc_property_t prop=properties[i];

const char* propertyName = property_getName(prop);

[propertyArray addObject:[NSString stringWithCString:propertyName encoding:NSUTF8StringEncoding]];

// const char* attributeName = property_getAttributes(prop);

// NSLog(@"%@",[NSString stringWithUTF8String:propertyName]);

// NSLog(@"%@",[NSString stringWithUTF8String:attributeName]);

id value = [entity performSelector:NSSelectorFromString([NSString stringWithUTF8String:propertyName])];

if(value ==nil)

[valueArray addObject:[NSNull null]];

else {

[valueArray addObject:value];

}

// NSLog(@"%@",value);

}

free(properties);

NSDictionary* returnDic = [NSDictionary dictionaryWithObjects:valueArray forKeys:propertyArray];

NSLog(@"%@", returnDic);

return returnDic;

}