iOS中对象属性的归档和解档(runtime+KVC)快捷解决方案
2015-08-22 21:07
423 查看
//iOS中对象属性的归档和解档(runtime+KVC)快捷解决方案 //使用方便省时 有需要的可以抽取为宏 或者保存为代码块 更为快捷 #import "MyModel.h" #import <objc/runtime.h> @implementation MyModel //归档 - (void)encodeWithCoder:(NSCoder *)encoder { unsigned int count; Ivar *ivars = class_copyIvarList([MyModel class], &count); for (int i=0; i<count; i++) { Ivar ivar = ivars[i]; const char *name = ivar_getName(ivar); NSString *strName = [NSString stringWithUTF8String:name]; //利用KVC取值 id value = [self valueForKey:strName]; [encoder encodeObject:value forKey:strName]; } free(ivars); } //解档 - (id)initWithCoder:(NSCoder *)decoder { if (self = [super init]) { unsigned int count = 0; //获取类中所有成员变量名 Ivar *ivars = class_copyIvarList([MyModel class], &count); for (int i = 0; i<count; i++) { Ivar ivar = ivars[i]; const char *name = ivar_getName(ivar); NSString *strName = [NSString stringWithUTF8String:name]; //进行解档取值 id value = [decoder decodeObjectForKey:strName]; //利用KVC对属性赋值 [self setValue:value forKey:strName]; } free(ivars); } return self; } @end
相关文章推荐
- iOS中OC:block底层实现原理
- hdu 1017 A Mathematical Curiosity
- [iOS] dom解析xml数据,拿到<>里面的值
- 初探NIOS ii 之hello_world
- 猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
- iOS开发 -- 图片轮播(详解)
- IOS-笔记12(ScrollView)
- IOS typedef 函数指针的用法
- iOS开发:TabBar的图片不显示,只显示灰色的正方形
- ios获取文件路径的四种不同情况
- iOS高级-QuartzCore框架-图片裁剪
- 02.OC的学习和ios的开发准备
- iOS打IPA包
- 啰里啰嗦学IOS CoreDate入门
- iOS 浅谈:深.浅拷贝与copy.strong
- 猫猫学iOS 之CoreLocation地理编码小Demo输入城市得到经纬度
- IOS路径处理方法
- iOS-万能跳转界面方法 (runtime实用篇一) 字数733 阅读1080 评论28 喜欢51
- Beginning Auto Layout Tutorial in iOS 7: Part 2
- 开始iOS 7中自动布局教程(一)