博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Runtime 概念
阅读量:5143 次
发布时间:2019-06-13

本文共 577 字,大约阅读时间需要 1 分钟。

概念:

1,oc 是基于c  为c添加了面向对象的特性,他将很多静态语言在编译和链接时期做的事放到了runtime里面运行来处理,runtime就是oc的幕后工作人员

 

2,Runtime 就是运行时 是c和汇编的Api,而oc是运行机制,也就是在运行时候的一些机制,其中主要是消息机制

 

3,对于c而言,函数的调用在编译的时候会决定调用哪个函数

4,oc的函数调用是成为消息发送,属于动态调用过程,在编译的时候并不能真正决定调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用

 

5,事实证明,在编译阶段,oc可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错,只有当运行的时候才会报错,这是因为oc是运行时

动态调用,而c语言调用未实现的函数就会报错

 

runtime的消息机制

Oc在运行的时候也是转换runtime方法运行的,任何方法调用本质:就是发送一个消息(用runtime发送消息,oc底层实现是通过runtime实现

消息机制原理:对象根据方法编号SEL去映射表查找对应的方法实现

 

每一个oc的方法,底层必然有一个与之对应的runtime方法

OC当中任何一个类都是用objc_class这样一个结构体来描述的。

转载于:https://www.cnblogs.com/liaolijun/p/7895640.html

你可能感兴趣的文章
51单片机存储器结构
查看>>
Windows10实用技巧-固定快捷方式到磁贴菜单方式
查看>>
mime.go
查看>>
微信公众平台接口配置问题
查看>>
SQL查询记录添加序号(HANA)
查看>>
LeetCode 74. Search a 2D Matrix(搜索二维矩阵)
查看>>
利用SignalR来同步更新Winfrom
查看>>
java中的静态方法
查看>>
反射机制
查看>>
CocoaPod
查看>>
【Finish】Python Day 9
查看>>
css3实现漂亮的按钮链接
查看>>
最大矩形面积
查看>>
[python基础] python 2与python 3的区别,一个关于对象的未知的坑
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
Enterprise Library 加密应用程序块的设计
查看>>
深度剖析post和get的区别
查看>>
云的世界
查看>>
WPF border属性
查看>>
初识DetNet:确定性网络的前世今生
查看>>