工具类:快速字典转模型(NSObject 分类/runtime 用法2:获取属性列表)
来源:互联网 发布:网络交换机设置 编辑:程序博客网 时间:2024/06/06 11:39
#import <Foundation/Foundation.h>@interface NSObject (PropertyList)// 通过一个字典创建一个模型+ (instancetype)objWithDict:(NSDictionary *)dict;@end#import "NSObject+PropertyList.h"#import <objc/runtime.h>@implementation NSObject (PropertyList)// 获取属性列表 在字典转模型的时候非常有用+ (instancetype)objWithDict:(NSDictionary *)dict { id instance = [[self alloc]init]; [[self propertys] enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { id value = dict[obj]; if (value) { // 设置属性值 [instance setValue:value forKey:obj]; } }]; return instance;}// copy, create,retain+ (NSArray *)propertys { unsigned int count;// 表示属性个数 // 获取到所有的属性 objc_property_t *list = class_copyPropertyList(self, &count); // 数组 NSMutableArray *data = [NSMutableArray array]; for (int i = 0; i < count; ++i) { // 取出每一个属性 objc_property_t key = list[i]; // 转成字符串 NSString *propertyName = [[NSString alloc]initWithCString:property_getName(key) encoding:NSUTF8StringEncoding]; // NSLog(@"%@",propertyName); [data addObject:propertyName]; } // 释放list free(list); return data.copy;}@end
0 0
- 工具类:快速字典转模型(NSObject 分类/runtime 用法2:获取属性列表)
- Runtime运行时用法1------获取类属性列表
- Runtime 解析字典自动生成属性代码 及 字典转模型方式一 KVC/Runtime
- Runtime(字典转模型)学习
- Runtime获取类属性列表和方法列表
- iOS runtime字典转模型
- runtime -- 实现字典转模型
- runtime 获取类的属性,方法,成员变量,以及协议 字典转model 总结
- 工具类:快速获取控件 frame 值(UIView 分类)
- 工具类:防止数组越界崩溃问题(NSArray 分类/runtime 用法3:交换方法)
- runtime获取对象属性及方法列表
- Runtime之动态获取属性列表
- 【OBJC类扩展之属性字典】NSObject+Property
- 【OBJC类扩展之属性字典】NSObject+Property
- runtime模型与字典互转
- KVC和runtime字典转模型
- Runtime的使用3 【字典转模型】
- Runtime的使用3 【字典转模型】
- 学习OpenGL(三)绘制点
- gcc visibility hidden 与 static
- UVALive 4255-Guess-拓扑排序
- Open vSwitch匹配处理流程和拓展性
- 基于java mail.jar邮件发送,最详细代码和讲解
- 工具类:快速字典转模型(NSObject 分类/runtime 用法2:获取属性列表)
- Android 数据操作之SQLiteDatabase
- Android小练习:过渡动画,引导页,判断是否第一次启动App
- 51 node 1050循环数组最大子段和
- 在Frame画图应用
- CF-Sereja and Algorithm
- 在window中net user administrator /active:no的解决策略
- 基站定位(Google API)
- 初识EJB