iOS 获取可采用KVC为对象赋值的keys
来源:互联网 发布:java内部类例子ppt 编辑:程序博客网 时间:2024/06/05 03:06
获取可采用KVC为对象赋值的keys
有时候为了解耦,需要使用KVC来为对象赋值.那么就需要判断想要赋值的key是否能够赋值给对象.
其实这个问题说来也简单,只需要两步:
1.获取对象的属性列表
2.遍历属性列表,查看key是否包含其中(可用NSSet取交集)
代码:
/** * 获取允许为类赋值的关键字数组 */- (NSSet *)allowedPropertyNamesFromNames:(NSArray *)names InClass:(Class)aClass{ //想要赋值的keys NSMutableSet *namesSet = [NSMutableSet setWithArray:names]; //允许赋值的keys NSMutableSet *allowedNamesSet = [NSMutableSet set]; //获取属性列表 unsigned int count; objc_property_t *properties = class_copyPropertyList(aClass, &count); for(int i = 0; i < count; i++) { objc_property_t property = properties[i]; NSString *name = [NSString stringWithCString:property_getName(property) encoding:NSUTF8StringEncoding]; [allowedNamesSet addObject:name]; } free(properties); //取交集 [namesSet intersectSet:allowedNamesSet]; return namesSet;}
注意
1.需要#import "objc/runtime.h"
2.class_copyPropertyList 获取到的属性列表,不包括父类属性.
0 0
- iOS 获取可采用KVC为对象赋值的keys
- iOS KVC-对象初始化赋值的神级技巧
- KVC方法快速为数据对象赋值
- 【iOS】关于kvc中的setValuesForKeysWithDictionary为model赋值的一些常见知识
- Object.keys() 获取对象的length
- 单例获取对象赋值后为null的现象
- KVC赋值
- kvc赋值
- KVC赋值
- iOS平台基于KVC的JSON与数据对象绑定
- 为对象动态赋值
- 5、关于kvc中的setValuesForKeysWithDictionary为model赋值
- iOS中KVC的用法
- iOS KVC 存在的问题
- ios KVC KVO的使用
- ios KVC机制的使用
- iOS的KVO与KVC
- IOS KVC的详细使用
- WinMain函数简介
- Mac openfire无法启动
- ERROR: Android Source Generator: [project] AndroidManifest.xml file not found
- sdk、jdk、jre的区别
- 不用循环实现累加
- iOS 获取可采用KVC为对象赋值的keys
- 基于R&Python的爬虫及文本识别与可视化实践
- NSURLSession的简单使用
- 浅谈iOS组件化
- pxssh connecting to an ssh proxy; Timeout exceeded in read_nonblocking()
- 数组建立二叉搜索树
- JEE框架Spring详细简介
- 偏差与方差学习笔记
- HDU 4101 Ali and Baba