美文网首页
第四章、runtime相关

第四章、runtime相关

作者: Evans_Xiao | 来源:发表于2019-08-09 21:29 被阅读0次

一、objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?

objc_msgSend()[obj foo]的具体实现。
在runtime中,objc_msgSend()是一个c函数,[obj foo]会被翻译成这样的形式objc_msgSend(obj, foo)

OC到C的转换过程分析:[obj foo];=>objc_msgSend(obj, @selector(foo));

二、runtime简介

runtime简称运行时。OC就是运行时机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。

三、说说什么是runtime

1、OC是一个全动态语言,OC的一切都是基于runtime实现的。平时编写的OC代码,在程序运行过程中,其实最终都是转成了runtime的C语言代码,runtime算是OC的幕后工作者。
2、runtime是一套比较底层的纯C语言API,属于1个C语言库,包含了很多底层的C语言API。
3、runtimeAPI的实现是用C++开发的(源码中的实现文件都是mm),是一套苹果开源的框架。

四、runtime应用场景

1、动态交换两个方法的实现
2、动态添加属性
3、实现字典转模型的自动转换
4、动态添加方法
5、拦截并替换方法
6、实现NSCoding的自动归档和解档

五、runtime函数的定义规则

对对象进行操作的方法一般以object_开头
对类进行操作的方法一般以class_开头
对类或对象的方法进行操作的方法一般以method_开头
对成员变量进行操作的方法一般以ivar_开头
对属性进行操作的方法一般以property_开头开头
对协议进行操作的方法一般以protocol_开头

相关文章

  • iOS之RunTime探索与实践

    Runtime 概念 Runtime 相关概念 Runtime 实践 Runtime概念 Runtime简称运行时...

  • IOS面试考察(一):runtime相关问题

    @[TOC] 1. IOS面试考察(一):runtime相关问题 1.1 runtime相关问题 runtime是...

  • runtime02-常用API

    runtime常用API runtime API01-类相关 runtime API01-类相关-事例01 run...

  • 第四章、runtime相关

    一、objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系? objc_m...

  • Runtime学习笔记记录

    文章目录 一 runtime原理 二 Runtime相关的头文件2-1 iOS 中 Runtime相关的头...

  • iOS - Runtime - 概念和方法交换

    runtime的概述runtime的相关概念runtime消息机制消息传递动态方法解析消息转发runtime的作用...

  • Runtime相关

    cache_t ·用于快速查找方法执行函数 ·是可增量扩展的哈希表结构 ·是局部性原理的最佳应用

  • Runtime相关

    1. 当接手一个比较大的项目时,利用method Swizzle (方法交换),来快速熟悉项目,从控制台输出当前控...

  • runtime相关

    修改系统方法 动态添加方法 动态给系统类添加属性(给分类添加属性) runtime+kvc 转换模型

  • runtime 相关

    http://blog.csdn.net/wzzvictory/article/details/8624057ru...

网友评论

      本文标题:第四章、runtime相关

      本文链接:https://www.haomeiwen.com/subject/iqpkjctx.html