文档章节

runtime讲解<二>

刀客445
 刀客445
发布于 2016/05/19 22:18
字数 287
阅读 39
收藏 0

runtime的应用(1)

前面对runtime有了一个简单了解,可看了半天在应用在没什么用啊,那你就错了

啊,我想起来了,你前面不就要说应用吗,为毛等到现在,我还傻傻看完前一页,流量啊,其实我是来替网通做任务的

还记得归档解档吗,想想就心碎的不行啊,那一大堆的=啊,有了runtime马上心就热乎了

首先遵循NSCoding协议

//归档
- (void)encodeWithCoder:(NSCoder *)aCoder
{
	unsigned int count;
	//获得指向当前类的所有属性的指针
	objc_property_t *propertys = class_copyPropertyList([Student class], &count);
	for (int i = 0;  i < count; i++) {
		//获得指向属性的指针
		objc_property_t property = propertys[i];
		
		const char *name = property_getName(property);
		
		NSString *properyName = [NSString stringWithUTF8String:name];
		
		
		//通过名称取值
		NSString *propertyValue = [self valueForKey:properyName];
		//编码属性
		[aCoder encodeObject:propertyValue forKey:properyName];
	}
	free(propertys);
}
//解档
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
	
	unsigned int count;
	//获得指向当前类的所有属性的指针
	objc_property_t *propertys = class_copyPropertyList([Student class], &count);
	for (int i = 0;  i < count; i++) {
		//获得指向属性的指针
		objc_property_t property = propertys[i];
		
		const char *name = property_getName(property);
		
		NSString *properyName = [NSString stringWithUTF8String:name];
		
		//解码属性值
		NSString *propertyValue = [aDecoder decodeObjectForKey:properyName];
		
		[self setValue:propertyValue forKey:properyName];

	}
   free(propertys);

	
	return self;
}


 

© 著作权归作者所有

共有 人打赏支持
刀客445
粉丝 2
博文 47
码字总数 10222
作品 0
杭州
LeadTools Android 入门教学——运行第一个Android Demo

LeadTools 有很多Windows平台下的Demo,非常全面,但是目前开发手机应用的趋势也越来越明显,LeadTools也给大家提供了10个Android的Demo,这篇文章将会教你如何运行第一个Android Demo,我想...

葡萄城控件技术团队
2015/03/26
0
0
Runtime的使用——利用Runtime将字典转成Model

关于runtime的知识已经有很多的讲解(传送门:对runtime的理解 http://www.jianshu.com/p/927c8384855a),但一直不知道runtime的使用场景, 接下来利用runtime实现将字典转换成model。希望大家...

啪神
2016/03/25
103
0
玩转iOS开发:装逼技术RunTime的应用(一)

文章分享至我的个人技术博客:cainrun.github.io/15065147177… 前面我们把的一些基本知识都了解了一遍, 知道了在的方法调用是属于消息传送的机制. 接着呢, 我们知道了每个类都有一个的结构体...

CainLuo
2017/10/13
0
0
weblogic安装说明

因公司开发要求需安装weblogic服务做压力测试使用 安装步骤开始讲解 一.首先安装jdk 二.其次weblogic 三.步骤 1.创建用户加入到weblogic及root(后续有些执行权限问题即需要加入到root组) ...

暖暖miss
2017/09/04
0
0
J2EE学习tomcat

一 tomcat 介绍: 1.Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持...

watertiger
2016/12/20
6
0

没有更多内容

加载失败,请刷新页面

加载更多

线性一致性和 Raft

作者:沈泰宁 在讨论分布式系统时,共识算法(Consensus algorithm)和一致性(Consistency)通常是讨论热点,两者的联系很微妙,很容易搞混。一些常见的误解:使用了 Raft [0] 或者 paxos ...

TiDB
22分钟前
0
0
兄弟连区块链教程以太坊源码分析core-state-process源码分析

## StateTransition状态转换模型 /* The State Transitioning Model 状态转换模型 A state transition is a change made when a transaction is applied to the cu......

兄弟连区块链入门教程
23分钟前
0
0
linear-gradient渐变中的参数

在看张鑫旭的博客 遇到渐变数值后面带参数不太理解 @supports (-webkit-mask: none) or (mask: none) { .box { border: none; background: linear-gradient(to bottom, #34538...

红羊在厦门
25分钟前
0
0
Python yagmail模块自动发邮件

Python发邮件yagmail模块 import yagmail#连接服务器yag=yagmail.SMTP('xx@163.com','yy','smtp.163.com')#邮箱正文contents=["test","email send"]#发送邮件#yag.send('...

小白兔_球球
25分钟前
1
0
pada mysql

CREATE SCHEMA `exchange` DEFAULT CHARACTER SET utf8mb4 ;

qwfys
34分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部