Objective-C Objective-C Objective-C Objective-C 培训教程 主要章节提示: 第 一 章 程序整体语法结构 第 二 章 数据类型 第 三 章 字符串 第 四 章 内存管理 第 五 章 对象的初始化 第 六 章 存取器 第 七 章 继承 第 八 章 动态绑定和 id 类型 第 九 章 分类和协议 第 十 章 属性列表 第十一章 复制对象 第十二章 归档 第一章 程序整体语法结构 程序的头文件和源文件的扩展名分别为 .h 和 .m 。注释语法和 C 一样。 Object_C 中的 nil 相当于 NULL 。 Object_C 中的 YES 和 NO 相当于 true 和 false 。 这里再讲解一下 YES 和 NO : Object-c 提供了 BOOL 类型,但这个 BOOL 类型和 C++ 里的并不一样:在 C++ 里一切非 0 值的东西 都 为 true ,而为 0 值的为 false 。但是 Object-c 里 1 为 true 并被宏定义为 YES , 0 为 false 并被宏定义为 NO ### Objective-C培训资料知识点概述 #### 一、程序整体语法结构 Objective-C 是一种面向对象的编程语言,它是对标准 C 语言的扩展,增加了面向对象功能和动态特性。Objective-C 的程序通常由头文件(.h)和源文件(.m)组成。 **头文件与源文件** - **头文件 (.h):** 包含类的接口定义,也就是类的公共部分,用于声明类的属性和方法。 - **源文件 (.m):** 包含类的实现细节,即方法的具体实现。 **注释语法** Objective-C 使用与 C 语言相同的注释语法,即 `//` 表示单行注释,`/* */` 表示多行注释。 **布尔值** - **YES 和 NO:** 在 Objective-C 中,`YES` 和 `NO` 分别代表 `true` 和 `false`。它们被定义为宏,其中 `YES` 宏展开为 `1`,`NO` 宏展开为 `0`。 - **BOOL 类型:** Objective-C 中的 `BOOL` 类型与 C++ 的布尔类型不同。在 C++ 中,任何非零值都被视为 `true`;而在 Objective-C 中,只有 `1` 被视为 `true`,`0` 视为 `false`。 - **错误示例:** 下面的代码是错误的,因为它返回两个整数相减的结果,除非结果恰好为 `1`,否则永远不会等于 `YES`。 ```objective-c BOOL areIntsDifferent_faulty(int thing1, int thing2) { return(thing1 - thing2); } ``` **程序示例解析** 以下是一个简单的 Objective-C 程序示例,用于展示程序的基本结构。 ```objective-c #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog(@"Programming is fun!"); [pool drain]; return 0; } ``` - **#import <Foundation/Foundation.h>:** 导入 Foundation 框架,提供了一系列基本的 Objective-C 类和函数。 - **NSAutoreleasePool:** - **创建**: `NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];` 创建一个自动释放池,用于管理自动释放的对象。 - **释放**: `[pool drain];` 释放自动释放池及其所有对象。 #### 二、数据类型 Objective-C 支持多种数据类型,包括基本数据类型如整型、浮点型等,以及 Objective-C 特有的类型如 `id` 和 `BOOL`。 #### 三、字符串 Objective-C 中字符串的处理通常使用 `NSString` 类。`NSString` 是不可变的,这意味着一旦创建了一个字符串,就不能修改它的内容。 #### 四、内存管理 Objective-C 中的内存管理机制主要包括引用计数和垃圾回收。Objective-C 使用自动引用计数 (ARC) 来简化内存管理。ARC 自动管理对象的引用计数,开发者不再需要手动发送 `retain` 和 `release` 消息来增加或减少对象的引用计数。 #### 五、对象的初始化 Objective-C 中的对象可以通过多种方式初始化,最常见的是使用 `-init` 方法。例如: ```objective-c YourClass * obj = [[YourClass alloc] init]; ``` #### 六、存取器 存取器方法用于获取或设置对象的属性。Objective-C 提供了自动合成存取器的方法,可以简化编码工作。 #### 七、继承 Objective-C 支持单一继承。子类可以从父类继承属性和方法,并可以覆盖父类的方法来提供不同的实现。 #### 八、动态绑定和 id 类型 - **动态绑定:** Objective-C 支持动态绑定,允许在运行时确定方法的实际接收者。 - **id 类型:** `id` 类型可以指向任何类的实例。这使得 `id` 成为了一个非常灵活的类型,在许多情况下都非常有用。 #### 九、分类和协议 - **分类:** 分类是对现有类的扩展,可以为现有类添加新的方法或属性,而不必创建一个新的子类。 - **协议:** 协议定义了一组方法,任何遵守该协议的类必须实现这些方法。 #### 十、属性列表 Objective-C 的属性列表允许在类定义中指定属性,简化了对象的管理和访问。 #### 十一、复制对象 Objective-C 支持对象的浅拷贝和深拷贝。通过 `-copy` 和 `-mutableCopy` 方法可以实现对象的复制。 #### 十二、归档 Objective-C 支持对象的序列化和反序列化,即对象的归档。归档可用于保存对象的状态,以便稍后恢复。 ### 总结 以上内容涵盖了 Objective-C 基础知识的关键方面。Objective-C 是一门强大的面向对象编程语言,尤其适用于 macOS 和 iOS 应用程序开发。理解这些基础知识对于深入学习 Objective-C 至关重要。
剩余51页未读,继续阅读
- warrior7402013-03-16还不错,可以作新手培训
- qq19802014-07-19新手学习一下,谢谢分享
- it_kevin2013-12-02还行,可做入门了解。
- HistoryLife2013-08-12还不错,可以作新手培训
- 粉丝: 15
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于C++与OpenCV实现图像预处理与连通域分析的Halcon连接应用
- golang go-zero gen 生成GORM model 生成脚本
- Screenshot_20241106_205542.jpg
- 基于H5实现手机商城网站程序源码43202
- Screenshot_2024-11-07-10-29-24-978_com.yinheqihuo.mhdxh.jpg
- 天陨班授课笔记.zip
- 只需 10 个步骤,即可熟练使用 Excel - 全球极受欢迎的电子表格应用
- 构建基于RBAC模型的Spring与Spring Security集成系统:实现通用权限控制与用户管理(面向新手学习权限管理技术
- 数据集-目标检测系列- 沙发 检测数据集 sofa >> DataBall
- 数据集-目标检测系列- 帽子 厨师帽 检测数据集 chef-hat >> DataBall