Category和Extension这两个概念,即便对于Java程序员,可能也会感到陌生。这是Objective C为程序员提供的两个强大的动态机制——简单地说,它们允许程序员为已有的对象添加新的方法,即便是在没有该对象的源代码的情况下。
Category准确的定义是这样的:Category拥有一个名字,它不需要使用子类(Subclassing)机制,就允许向一个类文件中添加新的方法声明,并且在类实现的文件中的同一个名字下定义这些方法。其语法举例如下:
#import "ClassName.h"
@interface ClassName ( CategoryName )
// method declarations
@end
不过到现在为止,Category这个名字看起来仍然让人摸不着头脑——Category的中文是分类和范畴的意思——即便这个动态机制很强大,跟分类有什么关系呢?
这是因为利用这个机制,程序员可以把一堆方法分门别类,分成若干组,每组方法用一个Category名字加以命名,定义在同一个文件里。这个就是为什么把这个机制叫做Category的原因。
注意Category只能用于方法,不能用于成员变量。
理解了Category,Extension就不难理解了。Extension是Category的一个特例,其名字为匿名(为空),并且新添加的方法一定要予以实现。(Category没有这个限制)
原文地址:
http://www.cnblogs.com/rolandash/archive/2010/03/22/1691314.html
分享到:
相关推荐
Objective-C是一种主要应用于Mac和iOS开发的面向对象的编程语言,它是基于C语言并扩展了Smalltalk的消息传递机制。Objective-C的语法在很多方面与C语言相似,但增加了类、消息传递等面向对象的特性。 1. **方法调用...
C++起源于C语言,强调面向对象编程,而Objective C则是在C的基础上扩展了面向对象特性,主要用于苹果的iOS和Mac OS X开发。从C++过渡到Objective C的学习之旅是一条富有挑战的道路,但同时也充满了机遇。以下是一些...
1. **Objective-C语法**:Objective-C的语法基于C语言,但引入了类、接口和消息传递等概念。这包括定义类、属性(@property)和方法(@selector)的语法,以及理解类接口(.h)和实现(.m)文件的作用。 2. **对象...
Objective-C是一种强大的面向对象编程语言,特别是在Apple的Mac OS X和iOS操作系统中广泛使用。它作为C语言的超集,引入了Smalltalk的类和消息传递机制,为开发者提供了丰富的功能和灵活性。"Learn Objective-C On ...
5. **Category与Extension**:Objective-C的Category和Extension机制允许开发者扩展已有的类,无需修改原有代码。这两种技术在实践中非常常用,书中的内容将帮助读者理解如何有效地使用它们。 6. ** Blocks 和 ...
"IOS应用源码——分类.zip"这个压缩包很可能是包含了一个或多个iOS应用程序的完整源代码,特别强调了"分类",这通常指的是Objective-C中的Category或者Swift中的Extension。 在iOS开发中,Category是一种强大的工具...
此外,还会讲解分类(Category)和扩展(Extension),它们是Objective-C中增强已有类功能的独特方式。 Objective-C的另一个重要特性是动态类型和运行时系统。动态类型意味着对象的实际类型可以在程序运行时确定,...
通过阅读《Objective-C程序设计 第6版》,开发者不仅可以掌握Objective-C语言的基本用法,还能深入了解Apple的开发环境和生态系统,从而更有效地构建iOS和macOS应用程序。这是一本全面且深入的教程,对于初学者和有...
Objective-C是由C语言发展而来,融入了Smalltalk的面向对象特性,因此它结合了C的简洁性和面向对象的灵活性。 1. **面向对象编程基础**: Objective-C的核心是它的面向对象特性,包括类(Class)、对象(Object)...
接下来,书中会讲解Objective-C的语法,如选择器(selector)、协议(protocol)、分类(category)和扩展(extension)。选择器是Objective-C中表示方法的唯一标识符,用于消息的发送。协议定义了一组可选的方法,...
此外,书中可能会详细介绍Objective-C的现代化特性,如语法糖(比如使用@property代替手工合成getter和setter)、Category(用于扩展已存在的类)以及Category中的Extension(用于为类添加私有方法和属性)。...
Objective-C 是苹果公司为其操作系统(包括macOS和iOS)开发的一种面向对象的编程语言,它在C语言的基础上扩展了Smalltalk的特性。本教程旨在为初学者提供一个基础且易于理解的Objective-C学习路径,帮助你快速入门...
Objective-C 2.0 是苹果公司开发的一种面向对象的编程语言,它是C语言的超集,主要用于iOS和macOS的应用程序开发。Objective-C 2.0在Objective-C的基础上添加了一些新特性,使得代码更加简洁易读,提高了开发效率。...
Objective-C 2.0是一种强大的面向对象编程语言,它是苹果公司开发的 macOS 和 iOS 操作系统的主要编程语言。本文将深入探讨Objective-C 2.0的关键特性、语法和概念,帮助开发者更好地理解和运用这一语言。 一、...
《Objective-C编程之道 iOS设计模式解析》是一本深入探讨Objective-C编程技术和iOS设计模式的专业书籍。本书旨在帮助iOS开发者提升编程技巧,理解并熟练运用设计模式来构建高效、可维护的iOS应用程序。27.7 MB的资源...
这篇描述提到了"objective-c的一些代码",这意味着我们将探讨Objective-C的关键概念、语法特性以及与iOS和macOS应用开发相关的实践。 首先,Objective-C是C语言的超集,它引入了Smalltalk的面向对象特性,如消息...
2. **Objective-C语法**:Objective-C的语法与C语言有很大不同,例如,它使用`@interface`、`@implementation`、`@protocol`等关键字来定义类和协议。此外,方法调用使用点语法(`.`)或括号语法(`[]`)。 3. **...
开发的C语言的超集,主要用于iOS和Mac OS X操作系统上的应用程序开发。本教程旨在为初学者提供一个全面的Objective-C入门指南,通过高清教程和配套源码,帮助学习者快速理解和实践这种语言。 Objective-C的关键特性...
Objective-C2.0是苹果公司开发的一种面向对象的编程语言,它是C语言的超集,同时引入了Smalltalk的关键特性,比如消息传递。这使得Objective-C成为开发iOS和macOS应用的主要工具。《Objective-C2.0程序设计(原书第2...
总的来说,《Objective-C on the Macintosh》这本书会引导读者从零开始,逐步掌握Objective-C编程,包括语法、设计模式以及Mac开发的特定技术。尽管出版时间较早,但很多基础概念仍然适用于现代iOS和macOS开发。