iOS 打印类的私有属性
2018-09-03 本文已影响0人
th先生
我们可以通过runtime运行时机制,动态的获取并改变类的私有属性。so酷!
引入头文件
#import <objc/runtime.h>
通过下面代码获取类的属性
unsigned int outCount = 0;
Ivar *ivars = class_copyIvarList([UIAlertAction class], &outCount);
for (NSInteger i = 0; i < outCount; ++i) {
// 遍历取出该类成员变量
Ivar ivar = *(ivars + i);
NSLog(@"\n name = %s \n type = %s", ivar_getName(ivar),ivar_getTypeEncoding(ivar));
}
// 根据内存管理原则释放指针
free(ivars);
通过KVC进行修改
[cancelAction setValue:MainColor forKey:@"titleTextColor"];