文档章节

runtime讲解<二>

刀客445
 刀客445
发布于 2016/05/19 22:18
字数 287
阅读 39
收藏 0
点赞 2
评论 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
博文 36
码字总数 10222
作品 0
杭州
LeadTools Android 入门教学——运行第一个Android Demo

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

葡萄城控件技术团队 ⋅ 2015/03/26 ⋅ 0

Runtime的使用——利用Runtime将字典转成Model

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

啪神 ⋅ 2016/03/25 ⋅ 0

玩转iOS开发:装逼技术RunTime的应用(一)

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

CainLuo ⋅ 2017/10/13 ⋅ 0

weblogic安装说明

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

暖暖miss ⋅ 2017/09/04 ⋅ 0

J2EE学习tomcat

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

watertiger ⋅ 2016/12/20 ⋅ 0

Vue2 源码漫游(一)

Vue2 源码漫游(一) 描述: 一、代码主线 文件结构1-->4,代码执行顺序4-->1 1.platforms/web/entry-runtime.js/index.js web不同平台入口; 2.runtime/index.js 为Vue配置一些属性方法 3....

daipeng7 ⋅ 2017/11/17 ⋅ 0

runtime讲解

1.runtime是什么? runtime直译就是运行时间,run(跑,运行) time(时间),网上大家都叫它运行时,它是一套比较底层的纯C语言API,属于一个C语言库,包含了很多底层的C语言API,它是OC的幕后工作者,...

刀客445 ⋅ 2016/05/19 ⋅ 0

go channel的一些技巧

一个已经被关闭的 channel 永远都不会阻塞。当一个 channel 一旦被关闭,就不能再向这个 channel 发送数据,但仍然可以尝试从 channel 中获取值。 2. 已经被关闭的 channel 会实时返回。 pa...

壬癸甲乙 ⋅ 2013/08/23 ⋅ 0

iOS runtime原理

对于runtime机制,在网上找到的资料大概就是怎么去用这些东西,以及查看runtime.h头文件中的实现,当然这确实是一种很好的学习方法,但是,其实我们还是不会知道runtime底层编译成C++语言之后...

哥特复心 ⋅ 2014/08/03 ⋅ 3

.NET简谈互操作(二:先睹为快)

互操作系列文章: .NET简谈互操作(一:开篇介绍) .NET简谈互操作(二:先睹为快) .NET简谈互操作(三:基础知识之DllImport特性) .NET简谈互操作(四:基础知识之释放非托管内存) .NET简谈互操作...

王清培 ⋅ 2011/06/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Linux kernel脉络和主干总结

写在前面 前人常说,对Linux操作系统/内核的理解,是计算机行业从业者的内功,决定了你在技术领域想走多远。但内核的庞大以及学习曲线之陡峭,总让我在学习途中觉得犹如“管中窥豹”。 随着工...

Markz0928 ⋅ 28分钟前 ⋅ 0

在gcc中使用intel风格的内联汇编

很简单,内联汇编使用asm(“.intel_syntax noprefix/n”)声明一下,以后的内联汇编就可以用intel风格了,构建可执行文件时给gcc加上-masm=intel参数。 先写一个小程序测试一下: [cpp] view...

simpower ⋅ 38分钟前 ⋅ 0

NIO 之 ByteBuffer实现原理

相关文章 BIO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理 前言 Java NIO 主要由下面3部分组成: Buffer Channel Selector 在传统IO中,流是基于字节的方式进行...

轨迹_ ⋅ 47分钟前 ⋅ 0

Jenkins docker权限问题

环境Ubuntu Server 工具 jenkins-war:2.89.2 报错信息 Cannot connect to the Docker daemon. Is the docker daemon running on this host?Build step 'Execute shell' marked build as fai......

Pulsar-V ⋅ 48分钟前 ⋅ 0

180621-一个简单的时间窗口设计与实现

如何设计一个计数的时间窗口 时间窗口,通常对于一些实时信息展示中用得比较多,比如维持一个五分钟的交易明细时间窗口,就需要记录当前时间,到五分钟之前的所有交易明细,而五分钟之前的数...

小灰灰Blog ⋅ 今天 ⋅ 0

Android之Dalvik、ART、JIT、AOT

Android之Dalvik、ART、JIT、AOT 本文内容:Dalvik、ART、JIT、AOT之间关系 本文定位:知识记录 学习过程记录,加深理解,提升文字组合表达能力。也希望能给学习的同学一些灵感 本文整理于[...

lichuangnk ⋅ 今天 ⋅ 0

Thrift RPC实战(五) thrift连接池

Thrift本身没有提供连接池,我们可以用Apache Commons Pool2来实现一个 一、定义对象工厂 BasePooledObjectFactory<T> extends BaseObject implements PooledObjectFactory<T> public class......

lemonLove ⋅ 今天 ⋅ 0

git 命令简写

简写 命令 g git gst git status gd git diff gdc git diff --cached gdv git diff -w "$@" | view - gl git pull gup git pull --rebase gp git push gc git commit -v gc! git commit -v ......

charley158 ⋅ 今天 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧四-类和方法注释模板设置

IDEA自带的注释模板不是太好用,我本人到网上搜集了很多资料系统的整理了一下制作了一份比较完整的模板来分享给大家,我不是专业玩博客的,写这篇文章只是为了让大家省事。 这里设置的注释模...

Mkeeper ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部