1.class_copyPropertyList与class_copyIvarList区别
class_copyPropertyList 仅仅获取属性列表
class_copyIvarList 返回类的所有属性和变量(包括大括号中申请的变量)
实际应用
1.给分类动态绑定属性
objc_setAssociatedObject(self, &target_key, block, OBJC_ASSOCIATION_COPY_NONATOMIC);
2.方法的交换
class_replaceMethod(selfClass, cusSEL, method_getImplementation(oriMethod), method_getTypeEncoding(oriMethod));
3.字典转模型
class_copyPropertyList([selfclass], &outCount);
4.获取所有的私有属性和方法
class_copyPropertyList([selfclass], &outCount);
5、对私有属性修改
(一些封装起来的类 并没有在.h文件中提供属性 你可以根据class_copyPropertyList([selfclass], &outCount);获取其中的属性,再根据valueforkey: 取得 然后可以进行修改)
6.快速归档解档
7.修改方法
网友评论