Objective-C语法

### Objective-C语法知识点详解####一、Objective-C概述**1.面向的读者** Objective-C针对已经具备C、C++或Java等类似编程语言基础,并且熟悉面向对象编程概念的学习者。 **2. Objective-C简介** Objective-C是一种基于C语言的面向对象编程语言,它起源于SmallTalk,最初由Brad J. Cox于20世纪80年代初期设计。Objective-C是C语言的一个超集,这意味着它可以与纯C代码无缝集成。2007年,苹果公司发布了Objective-C 2.0版本,并将其作为开发iOS和macOS应用的主要语言之一。 **3.学习内容** Objective-C的学习内容主要分为两大部分:语言本身的基础语法和Cocoa框架的使用。基础语法涵盖了面向对象的基本概念,如类、对象、继承等;而Cocoa框架则为开发者提供了丰富的API,用于构建图形用户界面和管理应用程序的各种功能。 **4. IDE**开发Objective-C程序最常用的集成开发环境是Xcode,这是苹果官方提供的IDE,包含了必要的SDK。Xcode仅支持macOS操作系统。如果要在其他操作系统上开发Objective-C程序,则需要使用其他IDE,如GNUStep可以在Linux/FreeBSD环境下使用,或者在Windows NT 5.x (如Windows 2000, XP)系统中通过安装cygwin或mingw后配合GNUStep进行开发。 **5.框架** Objective-C开发中最常用的框架是Cocoa框架,它是macOS平台五大API之一,由Foundation Kit和Application Kit两个子框架组成。Foundation Kit包含了面向数据的低级类和数据类型,如NSString、NSArray等;而Application Kit则包含了所有用户界面相关的对象和高级类。 **6.特别之处** Objective-C有许多独特的特性,例如使用`+`和`-`符号来表示类方法和实例方法,以及`[`和`]`来调用方法。此外,Objective-C还引入了`@`符号来定义类、协议等面向对象的概念。 **7.优缺点** - **优点** -动态类型和信息传递增加了语言的灵活性。 -类别、扮演(Posing)等特性允许在运行时修改类的行为。 -可以通过Objective-C++与C++代码混合使用。 -相对于C++而言,Objective-C更简单易学。 - **缺点** -缺乏命名空间,可能导致类名冲突。 -不支持操作符重载。 -相对于C++,某些高级特性可能不够丰富。 ####二、对C的扩展**1.扩展名** Objective-C中,头文件通常以`.h`为扩展名,源文件则以`.m`为扩展名。如果需要使用Objective-C++语法,则文件扩展名为`.mm`。 **2. #import** Objective-C中使用`#import`指令来包含头文件,这有助于避免重复包含同一头文件导致的问题。 **3. @符号** Objective-C引入了`@`符号来扩展C语言的功能,例如: - `@"字符串"`:用于创建NSString对象。 - `@interface`、`@implementation`等:用于定义和实现类。 **4. NSLog()** Objective-C中常用`NSLog()`函数来进行调试输出,它比传统的`printf()`函数更方便、安全。 ####三、创建对象**1.接口和实现** Objective-C中,接口定义了类的公共API,通常在`.h`文件中声明;实现部分则在`.m`文件中编写。 **2.方法** Objective-C支持实例方法和类方法。实例方法由特定的对象实例调用,而类方法则直接由类调用。 **3.属性**属性是Objective-C中用于封装变量的一种方式,它们可以在接口文件中声明,并在实现文件中自动生成getter和setter方法。 ####四、继承**1.不支持多继承** Objective-C不支持多继承,一个类只能继承自一个父类。 **2. Super关键字**在Objective-C中,可以使用`super`关键字来调用父类的方法或属性。 ####五、对象初始化**1.分配与初始化** Objective-C中对象的创建需要先分配内存空间,再进行初始化。常见的初始化方法包括`init`等。 **2.编写初始化方法**可以自定义初始化方法,以便在对象创建时执行特定的设置操作。 ####六、协议**1.声明协议**协议定义了一组方法签名,但不提供具体的实现。 **2.采用协议**类可以通过遵循协议的方式实现协议中定义的方法。 **3. ObjC2.0的新特性** Objective-C 2.0引入了协议的新特性,如协议扩展等。 ####七、委托**1.委托机制** Objective-C中的委托模式是一种常用的解耦机制,允许一个对象委托另一个对象来处理某些任务。 ####八、类别**1.声明类别**类别允许在不修改原类的基础上增加新的方法或属性。 **2.实现类别**类别可以在`.m`文件中定义,并且可以为原类添加额外的功能。 **3.局限性**类别有一些限制,比如不能定义实例变量。 **4.非正式协议和委托类别**类别还可以用来实现非正式协议,即一组约定的方法。 **5.选择器**选择器是Objective-C中的一个概念,用于表示方法的名称。 ####九、扮演(Posing) **1.扮演**扮演允许一个类假装成另一个类,从而能够被当做另一个类来使用。 ####十、动态识别(Dynamic Types) **1.动态类型** Objective-C支持动态类型,允许在运行时确定对象的具体类型。 ####十一、参考内容与延伸阅读**1.参考资料** Objective-C的学习资源丰富多样,包括苹果官方文档、在线教程、书籍等。深入理解Objective-C,还需要不断实践和探索。
docx 文件大小:142.35KB