我们从以下几个方面认识一下runtime:

runtime是什么?

runtime是属于OC的底层,是一套比较底层的纯C语言API,包含了很多底层的c语言API,可以进行一些非常底层的操作。我们平时编写的OC代码中,程序运行过程时,其实最终都是转成了runtime的C语言代码,runtime算是OC的幕后工作中。

[[MJPerson alloc] init]  //OC

objc_msgSend(objc_msgSend("MJPerson" , "alloc"), "init")//runtime

runtime可以用来干什么?

1.程序运行过程时,动态创建一个类

2.程序运行时,动态的为每个类添加属性、方法。用于封装框架

3.遍历一个类所有的成员变量、属性、方法。

runtime相关文件和函数

头文件:

<objc/runtime.h>

<objc/message.h>

相关函数:

objc_msgSend : 给对象发送消息

class_copyMethodList : 遍历某个类所有的方法

class_copyIvarList : 遍历某个类所有的成员变量

class_.....

必备知识:

Ivar : 成员变量

Method : 成员方法

转载于:https://www.cnblogs.com/gumengli/p/10234033.html

初始runtime(运行时机制)相关推荐

  1. iOS的runtime运行时机制

    本文转自http://www.cnblogs.com/guoxiao/p/3583432.html 最近一直在研究runtime运行时机制的问题,我想可能也有很多人不太清楚这个问题吧?在这里跟大家沟通 ...

  2. 浅谈runtime运行时机制

    由于OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法. 下面就介绍运行时一种很简单的使 ...

  3. 编译器设计-RunTime运行时环境

    编译器设计-RunTime运行时环境 Compiler Design - Run-Time Environment 作为源代码的程序仅仅是文本(代码.语句等)的集合,要使其活动,它需要在目标计算机上执 ...

  4. Objective-C Runtime 运行时之四:Method Swizzling

    理解Method Swizzling是学习runtime机制的一个很好的机会.在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文. Me ...

  5. Objective-C Runtime 运行时之五:协议与分类

    Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到. Objective-C中的协议是普遍存在的 ...

  6. Objective-C Runtime 运行时之六:拾遗

    前面几篇基本介绍了runtime中的大部分功能,包括对类与对象.成员变量与属性.方法与消息.分类与协议的处理.runtime大部分的功能都是围绕这几点来实现的. 本章的内容并不算重点,主要针对前文中对 ...

  7. IOS 利用运行时机制来进行归档解档

    前言:我们需要对一个类的属性进行归档解档的时候属性特别的多,这时候,我们就会写很多对应的代码,但是如果使用了runtime就可以动态设置,就会变的很轻松! 首先需要导入<objc/runtime ...

  8. runtime运行时编程一些相关知识

    http://blog.csdn.net/lizhongfu2013/article/details/9497721 转载于:https://blog.51cto.com/8287272/167276 ...

  9. iOS运行时-使用Runtime向Category中添加属性以及运行时介绍

    前言 了解OC的都应该知道,在一般情况下,我们是不能向Category中添加属性的,只能添加方法,但有些情况向,我们确实需要向Category中添加属性,而且很多系统的API也有一些在Category ...

  10. runtime实现的机制是什么,怎么用,一般用于干嘛. 你还能记得你所使用的相关的头文件或者某些方法的名称吗?...

    运行时机制,runtime库里面包含了跟类.成员变量.方法相关的API,比如获取类里面的所有成员变量,为类动态添加成员变量,动态改变类的方法实现,为类动态添加新的方法等 需要导入<objc/me ...

最新文章

  1. 2021全国高校计算机能力挑战赛(初赛)Java试题三
  2. Python自学路线图之Python进阶
  3. iOS开发 -------- AFNetworking使用中遇到的小问题
  4. 搭建TXManager分布式事务协调者
  5. SAP Spartacus Focusdirective继承自Lockdirective,静态代码分析
  6. 在 Apex 代码中生成 csv 文件
  7. 6月10款超赞的jQuery插件新鲜出炉
  8. C++进阶教程之预存处理器
  9. JAVA Eclipse如何安装Swing
  10. jQuery:1.5.1,复选框应用(全选,全不选,反选,提交选中的值,全选/全不选)...
  11. python指数函数,幂函数
  12. oracle 查询有字母,oracle中查询含字母的数据[正则表达式]
  13. 2000-2021年款雷克萨斯原厂全套维修手册+电路图资料下载
  14. Unity场景打包AssetBundle并加载
  15. 小米笔记本UEFI关闭安全启动
  16. 网络安全与渗透:sql注入,一文详解(九)此生无悔入华夏,男儿何不带吴钩
  17. 前端实现批量下载图片(自己的服务器需设置可跨域请求)
  18. windows7下系统保护中出现错误“文件名、目录名或卷标语法不正确。(0x8007007B)“ 以及保护设置列表中出现“Windows7_os(c:)(找不到)”选项时的解决方法...
  19. 特征工程与表示学习:人工 vs 自动
  20. 今日头条赚钱是真的吗,今日头条赚钱规则是什么

热门文章

  1. 拓端tecdat|使用SAS,Stata,HLM,R,SPSS和Mplus的多层线性模型HLM
  2. 拓端tecdat|基于keras平台CNN神经网络模型的服装识别分析
  3. 【大数据部落】 用机器学习识别不断变化的股市状况—隐马尔可夫模型(HMM)股票指数预测实战
  4. 5、maplotlib中的轴刻度和轴线
  5. ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
  6. caffe上手:如何导出caffemodel参数
  7. 基于感知哈希算法的图像相似匹配计算实战
  8. python生成指定年份所有的天,并计算每天属于一年的第几周和周几
  9. python库发布之从零到一:发布自己的第一个库——blogdownloader
  10. Python获取列表中字符串最长位置处的索引值