关闭

Objective-C特性:Runtime

原文出处: 刘耀柱(@Sam_Lau_Dev) Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和转发。下面通过分析Apple开源的Runtime代码(我使用的版本是objc4-646.tar)来深入理解Objective-C的Runtime机制。 Runti...
阅读(249) 评论(0)

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

原文出处: 南峰子的技术博客  前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。 本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读...
阅读(299) 评论(0)

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

原文出处: 南峰子的技术博客   Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。 Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声...
阅读(295) 评论(0)

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

原文出处: 南峰子的技术博客 理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。 Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应...
阅读(218) 评论(0)

Objective-C Runtime 运行时之三:方法与消息

原文出处: 南峰子的技术博客 前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。 基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下...
阅读(310) 评论(0)

Objective-C Runtime 运行时之二:成员变量与属性

原文出处: 南峰子的技术博客 在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。 本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。 类型编码(Type Encoding) 作为对Runtime...
阅读(449) 评论(0)

Objective-C Runtime 运行时之一:类与对象

原文出处: 南峰子的技术博客   Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。 这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运...
阅读(274) 评论(0)
    个人资料
    • 访问:2589次
    • 积分:32
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档