iOS获取对象属性列表
2016-01-04 10:36
309 查看
#import "A.h" #import <objc/runtime.h> @implementation A //获取对象的所有属性,不包括属性值 -(NSArray *)getAllProperty { u_int count; objc_property_t *properties = class_copyPropertyList([self class], &count); NSMutableArray *propertiesArray = [NSMutableArray arrayWithCapacity:count]; for (int i = 0; i < count; i++) { const char *propertyName = property_getName(properties[i]); [propertiesArray addObject:[NSString stringWithUTF8String:propertyName]]; } free(properties); return propertiesArray; }
//获取对象的所有属性,包括属性值 -(NSDictionary *)propertiesAndValue { NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; unsigned int count; objc_property_t *properties = class_copyPropertyList([self class], &count); for (int i = 0; i <count; i++) { const char *char_f = property_getName(properties[i]); NSString *propertyName = [NSString stringWithUTF8String:char_f]; id propertyValue = [self valueForKey:(NSString*)propertyName]; if (propertyValue) { [dictionary setObject:propertyValue forKey:propertyName]; } } free(properties); return dictionary; }
//获取对象的所有方法 -(void)printMothodList { unsigned int mothedCount_f = 0; Method *mothedList_f = class_copyMethodList([self class], &mothedCount_f); for (int i = 0; i < mothedCount_f; i++) { Method temp_f = mothedList_f[i]; IMP imp_f = method_getImplementation(temp_f); SEL name_f = method_getName(temp_f); const char *name_s = sel_getName(method_getName(temp_f)); int arguments = method_getNumberOfArguments(temp_f); const char *encoding = method_getTypeEncoding(temp_f); NSLog(@"方法名:%@, 参数个数:%d ,编码方式:%@",[NSString stringWithUTF8String:name_s],arguments,[NSString stringWithUTF8String:encoding]); } free(mothedList_f); } @end
相关文章推荐
- iOS导航栏透明
- iOS LaunchImage图片尺寸
- iOS中scrollview的在navigationbarcontroller中使用问题
- iOS常用宏
- Instruments定位iOS应用的Memory Leaks
- iOS - 图片实现多层折叠效果
- iOS 输出CGRect格式的数据
- VMware苹果开发环境
- iOS中 扫描二维码/生成二维码详解
- iOS进阶路线以及进阶书籍
- iOS学习笔记:移除cocoaPod
- 苹果之殇:Mac OS X、iOS 成2015安全漏洞重灾区
- 一张图搞定iOS学习路线
- <iOS>Alamofire的使用
- <iOS>CocoaPods使用过程
- NAGIOS API
- 实例解析iOS中音乐播放器应用开发的基本要点
- iOS中几种定时器 - 控制了时间,就控制了一切
- 推荐一个 iOS 关于颜色的库 - Wonderful
- iOS—修改AFNetworking源文件可接收text/plain的方法