iOS反射机制,获取方法名和描述属性
2015-04-20 16:16
267 查看
- (NSString *)serializeObject:(id)theObject { NSString *className = NSStringFromClass([theObject class]); const char *cClassName = [className UTF8String]; id theClass = objc_getClass(cClassName); unsigned int outCount, i; // Method *methods = class_copyMethodList(theClass, &outCount); // for (i = 0; i < outCount; i++) { // // // Method method = methods[i]; // // SEL sel = method_getName(method); // // NSLog(@"%@",NSStringFromSelector(sel)); // // // } objc_property_t *properties = class_copyPropertyList(theClass, &outCount); NSMutableArray *propertyNames = [[NSMutableArray alloc] initWithCapacity:1]; for (i = 0; i < outCount; i++) { objc_property_t property = properties[i]; NSString *propertyNameString = [[NSString alloc] initWithCString:property_getName(property) encoding:NSUTF8StringEncoding]; [propertyNames addObject:propertyNameString]; // [propertyNameString release]; NSLog(@"%s %s\n", property_getName(property), property_getAttributes(property)); } NSMutableDictionary *finalDict = [[NSMutableDictionary alloc] initWithCapacity:1]; for(NSString *key in propertyNames) { SEL selector = NSSelectorFromString(key); id value = [theObject performSelector:selector]; if (value == nil) { value = [NSNull null]; } [finalDict setObject:value forKey:key]; } // [propertyNames release]; // NSString *retString = [[CJSONSerializer serializer] serializeDictionary:finalDict]; NSString *retString = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:finalDict options:0 error:nil] encoding:NSUTF8StringEncoding]; // [finalDict release]; return retString; }
相关文章推荐
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- C#反射机制来获取类 属性的描述
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- [ios]objective-c 反射获取类的属性的方法
- 反射机制_介绍_Class对象获取_动态操作_构造器_方法_属性JAVA211-212
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- C#反射机制来获取类 属性的描述
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- ios 反射机制--获取类的所有属性名
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- Java中用反射的方式获取类中的所有属性和方法,以及获取属性的默认值,设置属性的默认值
- 通过反射机制获取某个类的所有属性,打印属性值,并思考以下问题:可以更改属性值吗?
- 用反射的方式获取父类中的所有属性和方法
- java 通过反射获取调用类方法及属性