Runtime:运行时机制详解

一、什么是runtime(运行时机制)Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和转发。

1.runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API。

2.平时编写的OC代码, 在程序运行过程中, 其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者

二、runtime有什么作用:runtime是属于OC的底层, 可以进行一些非常底层的操作(用OC是无法现实的, 不好实现)。

1.在程序运行过程中, 动态创建一个类(比如KVO的底层实现)

2.在程序运行过程中, 动态地为某个类添加属性\方法, 修改属性值\方法

3.遍历一个类的所有成员变量(属性)\所有方法

三、runtime的相关运用

* NSCoding(归档和解档, 利用runtime遍历模型对象的所有属性)

* 字典 --> 模型 (利用runtime遍历模型对象的所有属性, 根据属性名从字典中取出对应的值, 设置到模型的属性上)

* KVO(利用runtime动态产生一个派生类,KVO的实现原理,实际上是重写了这个派生类的某个属性的setter方法,这样就可以,实时监听它的值得变化)。

* 用于封装框架(想怎么改就怎么改)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于从事 iOS 开发人员来说,所有的人都会答出【runtime 是运行时】什么情况下用runtime?大部分人能...
    梦夜繁星阅读 3,744评论 7 64
  • 简介 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 O...
    随风飘荡的小逗逼阅读 1,006评论 0 0
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,838评论 0 9
  • 考试说明 注重基础知识和概念的理解,因此解题中的计算过程不会很复杂,但是会有推公式的过程。本课程的重点知识包括:贝...
    艺术叔阅读 2,931评论 0 3