有些时候想要自定义类的一些格式,可是类的相关属性是私有的;这时候就要yongKVC来进行相应的操作;于是就要先知道相关类的属性列表
于是乎:
unsigned int count;// 记录属性个数
objc_property_t *properties = class_copyPropertyList([UIAlertAction class], &count);
// 遍历
NSMutableArray *propertiesArray = [NSMutableArray array];
for (int i = 0; i < count; i++) {
// objc_property_t 属性类型
objc_property_t property = properties[i];
// 获取属性的名称 C语言字符串
const char *cName = property_getName(property);
// 转换为Objective C 字符串
NSString *name = [NSString stringWithCString:cName encoding:NSUTF8StringEncoding];
[propertiesArray addObject:name];
}
free(properties);
NSLog(@"propertiesArray == %@",propertiesArray);
//获取成员变量列表
NSMutableArray *ivarArray = [NSMutableArray array];
Ivar *ivarList = class_copyIvarList([UIAlertAction class], &count);
for (int i = 0; i < count; i++) {
Ivar myIvar = ivarList[i];
const char *ivarName = ivar_getName(myIvar);
[ivarArray addObject:[NSString stringWithUTF8String:ivarName]];
}
free(ivarList);
NSLog(@"ivarArray == %@",ivarArray);
网友评论