Objective-C Runtime(2)

本文深入探讨Objective-C Runtime中的结构体和消息机制。介绍如何通过C语言结构体影响OC类,以及Objective-C的消息发送如何在运行时通过objc_msgSend方法完成动态绑定。文章详细阐述了方法查找的过程,包括缓存、objc_method列表和父类结构体的搜索,并指出Runtime允许修改方法实现以实现绑定。
摘要由CSDN通过智能技术生成

上一篇Runtime中介绍了类最终都是以C语言结构体的形式展现,那么C语言中结构体是什么样的有哪些特新和作用呢?

结构体

在C语言中结构体是一种集合,比如包含基础数据类型的int,char ,double等等,可以包含我们想要的数据。结构体也是一种数据类型,我们一颗创建一个结构体,并对其进行修改。结构体本身不占用内存空间,结构体变量占用一块连续的内存空间。

上一篇中我们提到OC的类最终是C语言的结构,而C语言中结构体可以修改。那么我们是不是可以通过修改C语言的结构体,来影响OC中的类呢。

当然Objective-C是允许我们使用C语言来进行开发的。我们已经知道了类的表现,那么类的调用又是什么样的的,这里我们引入消息机制。

消息机制

消息机制,就是在使用某一类的方法的时候我们通过发送消息的形式,而不是通过调用,调用是编译的时候已经确定了你要执行的动作,也是调用确定的方法。确实有点绕,我们明白消息就可以了。

比如我们执行一个Person的方法:

- (void)actionMethod{
    NSLog(@"%s", "run");
}</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值