`
hunxiejun
  • 浏览: 1145842 次
文章分类
社区版块
存档分类
最新评论

Cocoa基本原理指南之二 - Cocoa对象

 
阅读更多

摘自:Cocoa基本原理指南

每个Objective-C对象都隐藏着一个数据结构,它的第一个成员变量或者说是实例变量“isa指针(大多数剩下的成员变量由对象的类或超类来定义)。顾名思义,isa指针指向的是对象的类,这个类也是一个对象,有自己的权限,是根据类的定义编译而来的。类对象负责维护一个方法调度表,该表本质上是由指向类方法的指针组成的;类对象中还保留一个超类的指针,该指针又有自己的方法调度表和超类(还有所有通过继承得到的公共和保护的实例变量)。isa指针对消息分发机制和Cocoa对象的动态能力很关键。

Objective-C比其它编程语言具有更强的动态能力,这种能力来源于如下三个方面:

<!--[if !supportLists]-->1. <!--[endif]-->动态类在运行时确定对象的类

<!--[if !supportLists]-->2. <!--[endif]-->动态绑定在运行时确定要调用的方法

<!--[if !supportLists]-->3. <!--[endif]-->动态装载在运行时为程序增加新的模块

Objective-C为动态类型引入了一个称为id的数据类型,用于表示任意的Cocoa对象。id数据类型使我们有可能在运行时进行任意的对象替换。动态类型使对象中的关联可以在运行时确定,而不需要在静态设计时强制指定对象类型。编译时的类型检查可以确保更加严格的数据完整性,但是作为交换,动态类型则给您的程序更大的灵活性。动态类型为Objective-C的第二种动态能力动态绑定提供了物质基础。正如动态类型将对象类的确定推迟到运行时一样,动态绑定将调用方法的确定也推迟到运行时。在编译时,方法的调用并不和代码绑定在一起,只有在消息确实发送出来之后,才确定被调用的代码。通过动态类型和动态绑定技术,您的代码每次执行都可以得到不同的结果。运行时因子负责确定消息的接收者和被调用的方法。运行时的消息分发机制为动态绑定提供支持。动态装载是最后一种动态能力。它是Cocoa的一个特性,依赖于Objective-C的运行环境支持。通过动态装载,Cocoa程序可以在需要的时候才装载执行代码和资源,而不是在启动的时候装载所有的程序组件。可执行代码(在装载之前就连接好了)通常包含一些新的、会被集成到应用程序运行时映像的类。代码和本地化资源(包括nib文件)被包装在程序包中,可以通过Foundation框架中的NSBundle类中定义的方法来显式装载。

Objective-C在基本语言上做了两个扩展:范畴(categories)和协议(protocols),它们是强大的软件开发工具。这两个扩展引入了声明方法并将它们关联到某个类的技术。

范畴提供一种为某个类添加方法而又不必制作子类的途径。范畴中的方法会变成类的一部分,并为该类的所有子类所继承。在运行时,原始方法和通过范畴添加的方法之间没有差别,可以向类(或者它的子类)实例发送消息,以调用范畴中定义的方法。范畴不仅是一种为类添加行为的便利方法,还可以对方法进行分组,将相关的方法放在不同的范畴中。范畴对于组织规模大的类特别方便,例如当几个开发者同时在一个类上工作时,甚至可以将不同的范畴放在不同的源文件中。范畴有一些限制。您不能通过范畴为类添加新的实例变量。可以通过范畴来为根类—NSObject—添加方法。通过这种方式添加的方法可以用于与该代码相连接的所有实例和类对象。非正式的协议—Cocoa委托机制的基础NSObject类中声明为范畴。

Objective-C的另一个扩展称为协议,它非常象Java中的接口。两者都是通过一个简单的方法声明列表发布一个接口,任何类都可以选择实现。协议中的方法通过其它类实例发送的消息来进行调用。

分享到:
评论

相关推荐

    Cocoa基本原理指南-中文版

    Cocoa基本原理指南-中文版.pdf Cocoa基本原理指南-中文版.pdf

    Cocoa基本原理指南

    在 Cocoa 的开发文档中,Cocoa 基本原理指南是介绍Cocoa 概念的初级文档,是诸如Cocoa 描画指南和 Cocoa 的视编程指南这类文档的先期读物。阅读Cocoa 基本原理指南需要的前提条件很少,但读者必须是 熟练的C 程序员...

    Cocoa 基本原理指南.pdf (中文)

    在Cocoa的开发文档中,Cocoa基本原理指南是介绍Cocoa概念的初级文档,是诸如Cocoa 描画指南和 Cocoa的视编程指南这类文档的先期读物。阅读Cocoa基本原理指南需要的前提条件很少,但读者必须是熟练的 C程序员,且...

    ._Cocoa基本原理指南.zip

    Cocoa基本原理指南Cocoa基本原理指南Cocoa基本原理指南Cocoa基本原理指南

    Cocoa基本原理指南(Cocoa Fundamentals Guide)

    Cocoa Fundamentals Guide 的中文版

    iOS and macOS Performance Tuning Cocoa, Cocoa Touch, Objective-C, and Swift

    iOS 和 macOS 性能优化书。iOS and macOS Performance Tuning Cocoa, Cocoa Touch, Objective-C, and Swift

    cocoa基本原理指南

    2. "Cocoa对象" 解释Objective-C的基本用法和优点,以及 Cocoa对象的常见行为、接口、和生命周期。 3. "为Cocoa程序添加行为" 描述如何使用Cocoa框架来编写程 序,解释如何创建一个子类。 4. "Cocoa的设计模式" 描述...

    cocoa基本原理指南和object c第二版

    cocoa基本原理指南和object c第二版 压缩包中包括: 其中Learning_Cocoa_with_Objective-C_2nd.pdf Learn Cocoa on the Mac.pdf Cocoa基本原理指南.rar

    Cocoa基本原理指南.pdf

    对于刚刚加入这个阵营的开发者来说,Cocoa像是一个巨大而未知的新世界...Cocoa基本原理指南提供了 领略Cocoa技术景致的方向,介绍Cocoa的特性、基本概念、专用术语、结构、以及潜在的设计模式, 使开发者更加容易上手。

Global site tag (gtag.js) - Google Analytics