-(NSDictionary *)toDictionary{
@try {
NSDictionary *dic = nil;
unsigned int outCount, i;
Class class = [self class];
NSMutableArray *tmpKeys = [[NSMutableArray alloc] init];
do{
objc_property_t *properties = class_copyPropertyList(class, &outCount);
for(i = 0; i < outCount; i++) {
objc_property_t property = properties[i];
NSString *key=[[NSString alloc]initWithCString:property_getName(property)encoding:NSUTF8StringEncoding];
[tmpKeys addObject:key];
}
class = [class superclass];
} while (class != [NSObject class]);
dic = [self dictionaryWithValuesForKeys:tmpKeys];
return dic;
}
@catch (NSException *exception) {
NSLog(@"Warning: %@ Class dictionary exception: %@",[self class],[exception debugDescription]);
}
}