内容简介
《精通Objective-C》是Objective-C的高阶教程,全面深入地介绍了Objective-C编程语言、Objective-C的运行时环境和重要的API。《精通Objective-C》通过清晰易懂的方式介绍了Objective-C的关键概念,还详细介绍了一些比较复杂的特性。书中还包括许多实用的示例(代码片段和完整程序),让读者能快速学以致用。
《精通Objective-C》适合有一定Objective-C开发经验的中开发者,以及没有用过Objective-C,但拥有C语言编程经验并理解面向对象编程思想的开发者阅读。
目录
目录
第1章 入门 1
1.1 简介 1
1.1.1 苹果公司的Objective-C平台 1
1.1.2 选择Objective-C的原因 2
1.2 开发一个简单的Objective-C程序 3
1.2.1 新建工程 3
1.2.2 编写第一个Objective-C程序 7
1.3 小结 9
第2章 使用类 10
2.1 开发第一个类 10
2.1.1 向项目中添加一个类 10
2.1.2 编写Atom类的接口 12
2.1.3 编写实现Atom类的代码 13
2.2 实例变量 15
2.2.1 设置访问实例变量的方式 16
2.2.2 声明实例变量 16
2.2.3 访问实例变量 17
2.3 属性 17
2.3.1 属性声明 17
2.3.2 属性定义 18
2.3.3 由属性支持的实例变量 19
2.3.4 访问属性 19
2.4 方法 20
2.4.1 语法 20
2.4.2 调用方法 21
2.5 协议 21
2.6 分类 24
2.7 小结 27
第3章 对象和消息传递 28
3.1 创建对象 28
3.1.1 初始化对象 29
3.1.2 延伸Elements工程 30
3.2 发送消息 35
3.3 消息转发 36
3.3.1 转发选项 37
3.3.2 向Hydrogen类添加快速转发
机制 37
3.4 小结 41
第4章 内存管理 43
4.1 程序的内存使用情况 43
4.2 Objective-C的内存模型 45
4.3 手动管理 45
4.3.1 对象引用和对象所有权 45
4.3.2 内存管理基本原则 45
4.3.3 使用MRR 48
4.4 使用自动引用计数 54
4.4.1 使用ARC的规则和约定 55
4.4.2 ARC的生命周期限定符 56
4.4.3 使用ARC 56
4.4.4 避免循环引用 60
4.5 小结 60
第5章 预处理器 62
5.1 概述 62
5.2 预处理器语言 63
5.2.1 指令 64
5.2.2 宏 71
5.3 小结 72
第6章 专家级技巧:使用ARC 74
6.1 ARC和对象所有权 74
6.1.1 声明对象的所有权 74
6.1.2 释放对象的所有权 75
6.2 扩展订单条目工程 76
6.3 将ARC与苹果公司提供的框架和
服务一同使用 82
6.4 Objective-C直接桥接 83
6.5 使用ARC桥接转换 85
6.6 小结 89
第7章 运行时系统 90
7.1 动态功能 90
7.2 对象消息 90
7.2.1 选择器 92
7.2.2 方法签名 93
7.2.3 使用对象消息 94
7.3 动态类型 100
7.4 动态绑定 101
7.5 动态方法决议 102
7.6 动态加载 104
7.7 内省 105
7.8 小结 106
第8章 运行时系统的结构 107
8.1 运行时系统的组成部分 107
8.1.1 编译器 107
8.1.2 运行时系统库 112
8.2 与运行时系统交互 120
8.2.1 NSObject类的运行时方法 121
8.2.2 执行对象内省 121
8.3 小结 123
第9章 专家级技巧:使用运行时
系统API 125
9.1 使用可选包扩展程序 125
9.1.1 方法 125
9.1.2 步骤1:编写基础代码 125
9.1.3 步骤2:创建一个可选包 128
9.1.4 步骤3:动态加载包 132
9.2 使用运行时系统API 138
9.2.1 定义方法的实现函数 140
9.2.2 创建并注册类 140
9.2.3 创建类实例 141
9.2.4 以动态方式向类实例添加
变量 141
9.3 创建动态代理 142
9.3.1 创建Invoker协议 143
9.3.2 编写代理类 144
9.3.3 测试AspectProxy程序 147
9.4 小结 149
第10章 Foundation框架中的常用类 150
10.1 根类 150
10.1.1 NSObject协议 150
10.1.2 NSObject类 151
10.1.3 NSProxy类 153
10.2 字符串 153
10.2.1 NSString类 154
10.2.2 NSAttributedString类 157
10.2.3 NSString常量 157
10.2.4 格式化字符串 157
10.3 值对象 158
10.3.1 NSValue类 158
10.3.2