11、Objective-C运行时系统与内存管理详解

Objective-C运行时系统与内存管理详解

一、Objective-C运行时系统概述

Objective-C语言尽可能地将决策从编译时和链接时推迟到运行时,只要有可能就动态执行操作。这意味着该语言不仅需要编译器,还需要运行时系统来执行编译后的代码。运行时系统就像是Objective-C语言的一种操作系统,是语言得以运行的关键。

Objective-C程序与运行时系统的交互主要在三个不同层面进行:
1. 通过Objective-C源代码 :大多数情况下,运行时系统在幕后自动工作。只需编写和编译Objective-C源代码,就可以使用它。当编译包含Objective-C类和方法的代码时,编译器会创建实现语言动态特性的数据结构和函数调用。这些数据结构捕获类、类别定义和协议声明中的信息,包括之前讨论的类和协议对象、方法选择器、实例变量模板等。主要的运行时函数是发送消息的函数,由源代码中的消息表达式调用。
2. 通过Foundation框架中NSObject类定义的方法 :Cocoa中的大多数对象是NSObject类的子类,因此大多数对象继承了它定义的方法(NSProxy类是明显的例外)。NSObject的一些方法只是向运行时系统查询信息,这些方法使对象能够进行自省。例如:
- class 方法:用于让对象识别自己所属的类。
- isKindOfClass: isMemberOfClass: 方法:用于测试对象在继承层次结构中的位置。
- respondsToSelector

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值