
Objective-C入门经典
《Objective-C入门经典》是2013年1月1日人民邮电出版社出版的图书,作者是Jesse Feiler。
基本介绍
- 中文名:Objective-C入门经典
- 外文名:Sams Teach Yourself Objective-C In 24 Hours
- 作者:Jesse Feiler
- 出版社:人民邮电出版社
- 页数:288页
- 开本:16
- 品牌:人民邮电出版社
- 译者:陈昕昕
- 出版日期:2013年1月1日
- 语种:简体中文
- ISBN:9787115298867
内容简介
《Objective-C入门经典》分成5大主要部分:第1部分概述了Objective-C语言,包括面向对象特性、开发环境、开发流程、源码管理及编译器指令方面的内容。第2部分介绍了Objective-C语言的基础知识,包括如何创建和使用类,如何使用集合管理对象,如何管理记忆体和运行时对象等方面的内容。第3部分讲述了如何扩展Objective-C对象,包括如何使用协定和委託,如何使用分类和扩展,如何使用关联引用和快速枚举以及如何使用块方面的内容。第4部分讲述Objective-C语言中较为高级的主题,包括如何使用异常、伫列和执行绪,以及如何使用调试工具和检测工具来分析程式。
《Objective-C入门经典》是一本介绍Objective-C语言的入门图书。《Objective-C入门经典》以一种全新的方式,探讨了如何在Mac平台上快速地掌握Objective-C语言,帮助读者轻鬆地学习Objective-C语言。《Objective-C入门经典》中源码可通过网路下载,书中案例式教学,手把手读者完成最常见的Objective-C开发任务;章节末尾的问与答、测验和练习题,帮助读者检验知识的掌握情况。
《Objective-C入门经典》适合想学习Objective-C语言、提升编程技能的初级程式设计师和其他人员阅读。《Objective-C入门经典》可以让初学者迅速入门,轻鬆掌握Objective-C语言;可以让有经验的程式设计师,巩固个人知识,提升编码技能。
《Objective-C入门经典》适合想学习Objective-C语言、提升编程技能的初级程式设计师和其他人员阅读。《Objective-C入门经典》可以让初学者迅速入门,轻鬆掌握Objective-C语言;可以让有经验的程式设计师,巩固个人知识,提升编码技能。
作者简介
《Objective-C入门经典》作者Jesse Feiler是North Country Consulting公司的所有者,致力于向大型企业和非盈利机构提供技术相关的谘询服务。Feiler从1985年开始成为一名Apple开发人员,曾经为Apple推出的Mac、Newton、iPhone和iPad设备开发过套用。他最近为iPad开发了一款名为MinutesMachine的会议管理软体。Feiler最近撰写的图书包括Sams Teach Yourself Core Data in 24 Hours、Data-Driven iOS Apps for iPad and iPhone with FileMaker Pro, Bento by FileMaker and FileMaker Go、FileMaker Pro in Depth、Sams Teach Yourself Drupal in 24 Hours。
图书目录
第1部分
第1章 Objective—C概述 2
1.1 Objective—C简介 2
1.2 注册成为Apple开发者 3
1.2.1 选择适合自己的计画 3
1.2.2 选择自己的会员类别 4
1.2.3 注册自己的AppleID 5
1.3 配置开发环境 5
1.3.1 Xcode简介 5
1.3.2 运行第一个项目 6
1.4 总结 12
1.5 问与答 12
1.6 测验 12
1.6.1 问题 12
1.6.2 答案 12
1.7 练习 13
第2章 使用Objective—C进行面向对象程式设计 14
2.1 Objective—C世界中的面向对象程式设计 14
2.1.1 实现面向对象程式设计 14
2.1.2 构建面向对象项目 15
2.1.3 框架初探 15
2.2 使用对象创建C 16
2.2.1 理解数据抽象 17
2.2.2 研究封装 17
2.2.3 使用访问器(Accessor)管理封装 19
2.3 管理Objective—C世界中的继承 20
2.4 总结 21
2.5 问与答 21
2.6 测验 21
2.6.1问题 21
2.6.2答案 21
2.7 练习 22
第3章 使用Objective—C中的面向对象特性 23
3.1 使用讯息与方法进行通信 23
3.1.1 简单讯息 23
3.1.2 声明方法 24
3.1.3 使用类方法 24
3.1.4 使用id——强和弱类型变数 25
3.1.5 嵌套讯息 25
3.1.6 方法签名和参数初探 26
3.2 分配和初始化对象 27
3.3 总结 27
3.4 问与答 28
3.5 测验 28
3.5.1 问题 28
3.5.2 答案 28
3.6 练习 28
第4章 使用Git原始码仓库来组织项目 29
4.1 开始使用Xcode 29
4.2 跟蹤原始码 32
4.2.1 原始码控制探究 33
4.2.2 在原始码仓库的世界中工作 34
4.2.3 在Xcode中使用Git 35
4.3 使用远程仓库 43
4.4 总结 46
4.5 问与答 46
4.6 测验 47
4.6.1 问题 47
4.6.2 答案 47
4.7 练习 47
第5章 使用编译器指令 48
5.1 浏览项目 48
5.2 使用编译器指令 50
5.2.1 使用基础指令 50
5.2.2 Prefix头初探 50
5.2.3 main.m中的普通C代码初探 51
5.2.4 研究头(.h)档案 52
5.2.5 深入探究讯息(.m)档案 53
5.3 使用Objective—C编译器指令 55
5.4 总结 55
5.5 问与答 55
5.6 测验 55
5.6.1 问题 55
5.6.2 答案 56
5.7 练习 56
第2部分
第6章 讯息和试验床应用程式探究 58
6.1 创建测试套用 58
6.2 添加一个文本域并将其与代码连线起来 61
6.3 向文本域传送讯息 67
6.4 複习讯息语法 68
6.5 总结 69
6.6 问与答 69
6.7 测验 69
6.7.1 问题 69
6.7.2 答案 69
6.8 练习 70
第7章 在接口档案中声明类 71
7.1 让Xcode完成工作 71
7.1.1 设计类 71
7.1.2 準备创建类 72
7.2 浏览类层次 76
7.2.1 调用超类中的方法 76
7.2.2 协定简介 77
7.3 声明类 78
7.3.1 编写基本的类声明 78
7.3.2 使用前向引用 79
7.4 总结 79
7.5 问与答 80
7.6测验 80
7.6.1问题 80
7.6.2 答案 80
7.7 练习 80
第8章 在接口档案中声明实例变数 81
8.1 声明实例变数和属性 81
8.2 使用类 81
8.2.1 将类实例放置在上下文中 82
8.2.2 选择上下文 82
8.3 使用id创建一个引用CurrencyConverter的实例变数 83
8.4 使用类名称创建一个引用CurrencyConverter的实例变数 85
8.5 使用超类名创建一个引用CurrencyConverter的实例变数 87
8.6 管理实例变数的作用域 89
8.7 总结 90
8.8 问与答 90
8.9 测验 90
8.9.1 问题 90
8.9.2 答案 90
8.10 练习 90
第9章 在接口档案中声明属性 91
9.1 接口变数和属性比较 91
9.1.1 複习基本的变数声明 92
9.1.2 创建声明属性:基础 93
9.1.3 处理对象占用的记忆体 94
9.1.4 使用声明属性(Properties)的特性(Attributes) 95
9.2 使用声明属性 95
9.2.1 使用讯息语法访问属性 96
9.2.2 使用点语法访问属性 96
9.3 使用特性(Attributes) 97
9.3.1 访问器方法 97
9.3.2 可写性 98
9.3.3 Setter语义 98
9.3.4 原子性 98
9.4 使用其他特性装饰器 99
9.5 实现属性 99
9.5.1 使用@synthesize创建访问器 99
9.5.2 使用@dynamic允诺数据 100
9.6 总结 100
9.7 问与答 100
9.8 测验 100
9.8.1 问题 100
9.8.2 答案 101
9.9 练习 101
第10章 在接口档案中声明方法 102
10.1 使用类中的方法 102
10.2 複习方法语法 103
10.2.1 区分类和实例方法 103
10.2.2 方法声明探究 104
10.2.3 编写方法声明 106
10.2.4 从方法返回複杂数据结构 106
10.3 总结 107
10.4 问与答 107
10.5 测验 107
10.5.1 问题 107
10.5.2 答案 108
10.6 练习 108
第11章 在接口档案中声明动作 109
11.1 动作简介 109
11.2 MacOSX和iOS中的动作比较 118
11.2.1 断开与动作的连线 120
11.3 问与答 120
11.4 测验 121
11.4.1 问题 121
11.4.2 答案 121
11.5 练习 121
第12章 使用选择器路由讯息 122
12.1 深入研究Objective—C讯息 122
12.2 深入研究Objective—C运行时 123
12.3 使用SEL和@selector() 124
12.4 使用performSelector 125
12.4.1 使用@selector()创建选择器 125
12.4.2 根据字元串创建选择器 126
12.4.3 使用选择器 126
12.5 使用NSInvocation 128
12.5.1 创建NSInvocation 128
12.5.2 使用NSInvocation属性 129
12.5.3 调用NSInvocation 130
12.6 测试一个实例是否能够回响选择器 131
12.7 总结 131
12.8 问与答 131
12.9 测验 132
12.9.1 问题 132
12.9.2 答案 132
12.10 练习 132
第13章 基于Foundation框架构建应用程式 133
13.1 Foundation框架探究 133
13.2 Foundation类 134
13.2.1 根类 134
13.2.2 其他类 135
13.3 Foundation範式与策略 136
13.3.1 可变性 136
13.3.2 类簇 136
13.3.3 通知 137
13.4 总结 139
13.5 问与答 139
13.6 测验 140
13.6.1 问题 140
13.6.2 答案 140
13.7 练习 140
第14章 在实现档案中定义一个类 141
14.1 创建一个新项目 141
14.1.1 重新思考动态类型 142
14.1.2 设计(Currency)Converter 142
14.2 创建新套用 144
14.3 实现方法 147
14.4 使用init方法扩展类 150
14.5 总结 151
14.6 问与答 151
14.7 测验 151
14.7.1 问题 151
14.7.2 答案 152
14.8 练习 152
第15章 使用集合组织数据 153
15.1 收集对象 153
15.2 熟悉属性列表 155
15.2.1在属性列表中使用集合 155
15.2.2 在运行时根据属性列表构建集合 156
15.3 集合类比较 156
15.4 创建集合 157
15.4.1 使用公共集合创建方法 157
15.4.2 读取和写入数组 158
15.4.3 读取和写入字典 159
15.4.4 创建集合 160
15.5 枚举集合 160
15.5.1 NSEnumerator方法探究 160
15.5.2 为集合创建NSEnumerator实例 160
15.6 测试集合中的成员关係 162
15.7 访问集合中的对象 162
15.8 总结 163
15.9 问与答 163
15.10 测验 163
15.10.1 问题 163
15.10.2 答案 163
15.11 练习 164
第16章 管理记忆体和运行时对象 165
16.1 管理记忆体中的对象 165
16.2 手工管理引用计数 166
16.2.1 释放对象 167
16.2.2 向Converter添加记忆体管理功能 167
16.2.3 记忆体管理小结 169
16.3 使用ARC管理引用计数 169
16.3.1 使用声明属性特性 169
16.3.2 最佳化Converter 170
16.4 变数限定符 171
16.5 自动释放变数 171
16.6 总结 172
16.7 问与答 172
16.8 测验 172
16.8.1 问题 172
16.8.2 答案 172
16.9 练习 172
第3部分
第17章 使用协定和委託(Delegate)扩展一个类 176
17.1 子类化的优缺点探究 176
17.2 MultipleDetailViews示例代码探究 177
17.3 深入协定 181
17.4 使用委託 182
17.4.1 从头档案中获取更多帮助 183
17.4.2 在InterfaceBuilder中查看连线 183
17.5 总结 185
17.6 问与答 185
17.7 测验 185
17.7.1 问题 185
17.7.2 答案 186
17.8 练习 186
第18章 使用分类和扩展(Extension)扩充一个类 187
18.1 分类和协定比较 187
18.1.1 选择何时使用分类 187
18.1.2 分类与其他技术比较 188
18.2 分类和子类比较 188
18.2.1 修改类层次 188
18.2.2 将变更限制在分类中 189
18.3 使用分类 189
18.4 使用类扩展 192
18.5 使用非正式协定 192
18.6 总结 192
18.7 问与答 192
18.8 测验 193
18.8.1 问题 193
18.8.2 答案 193
18.9 练习 193
第19章 使用关联引用和快速枚举 194
19.1 学习Objective—C2.0中节省时间的特性 194
19.2 通过添加实例变数(部分)扩展类 195
19.2.1 添加一个关联引用 195
19.2.2 读取和设定一个关联引用 196
19.2.3 根据键删除一个关联引用 198
19.2.4 删除一个对象中的所有关联引用 198
19.3 使用快速枚举 198
19.3.1 使用快速枚举 198
19.3.2 通过一个NSEnumerator使用快速枚举 199
19.4 总结 200
19.5 问与答 200
19.6 测验 200
19.6.1 问题 200
19.6.2 答案 200
19.7 练习 200
第20章 使用块 201
20.1 複习块 201
20.2 回调函式探究 202
20.3 引入块 204
20.3.1 创建块作为块变数 205
20.3.2 使用块变数 205
20.4 学习Cocoa中的块 207
20.4.1 NSString中的方法enumerateLinesUsingBlock: 207
20.4.2 NSArrayenumerateObjectsUsingBlock: 208
20.4.3 NSSetenumerateObjectsUsingBlock: 208
20.4.4 NSDictionaryenumerateKeysAndObjectsUsingBlock: 208
20.5 深入研究Cocoa块和记忆体 208
20.6 总结 209
20.7 问与答 209
20.8 测验 209
20.8.1 问题 209
20.8.2 答案 210
20.9 练习 210
第4部分
第21章 处理异常 212
21.1 重新思考异常和错误 212
21.2 异常和错误类介绍 213
21.2.1 使用异常 213
21.2.2 使用错误 214
21.2.3 深入学习NSException 214
21.2.4 深入学习NSError 214
21.3 识别一个异常 216
21.4 抛出一个异常 217
21.5 捕获一个异常 218
21.6 总结 218
21.7 问与答 219
21.8 测验 219
21.8.1 问题 219
21.8.2 答案 219
21.9 练习 219
第22章 集中分发:使用伫列和执行绪 220
22.1 开始使用并发 220
22.1.1 深入研究计算机中的处理器 220
22.1.2 在不重写用户套用的情况下使用并发 221
22.1.3 使用执行绪实现并发 221
22.1.4 集中分发(GCD)简介 222
22.2 伫列简介 222
22.2.1 分发伫列 223
22.2.2 分发源 223
22.2.3 操作伫列 224
22.3 使用分发伫列 224
22.3.1 使用全局并发分发伫列 224
22.3.2 向全局并发伫列添加任务 225
22.3.3 使用伫列设计套用 225
22.4 总结 226
22.5 问与答 226
22.6 测验 226
22.6.1 问题 226
22.6.2 答案 226
22.7 练习 226
第23章 使用调试器 228
23.1 记录信息 228
23.2 使用控制台日誌 229
23.2.1 使用NSLog 229
23.2.2 增强NSLog 230
23.3 使用智慧型断点 231
23.3.1 使用讯息增强断点 232
23.3.2 根据条件触发 234
23.4 总结 235
23.5 问与答 235
23.6 测验 236
23.6.1 问题 236
23.6.2 答案 236
23.7 练习 236
第24章 使用Instruments来分析 237
24.1 考虑使用Instruments 237
24.2 深入学习Instruments 239
24.3 开始使用Instruments 241
24.4 连线到iOS模拟器 243
24.5 总结 244
24.6 问与答 245
24.7 测验 245
24.7.1 问题 245
24.7.2 答案 245
24.8 练习 245
第5部分
附录A C语法小结 248
A.1 数据类型 248
A.1.1 枚举类型 248
A.1.2 Struct类型 249
A.1.3 指针 249
A.1.4 数组 249
A.2 控制结构 250
A.2.1 if语句 250
A.2.2 switch语句 250
A.2.3 重複语句 250
附录B 套用、包和Bundle 251
附录C 为开发和测试对套用进行归档和打包 255
附录D Xcode4简介 258
D.1 了解Xcode 258
D.2 再见“HelloWorld” 259
D.2.1 使用命令式和声明式程式设计範式 259
D.2.2 使用面向对象程式设计 260
D.3 MacOSX和iOS平台套用开发简介 261
D.4 开始使用Xcode 262
D.5 使用导航栏 264
D.5.1 项目Win—1 264
D.5.2 符号Win—2 267
D.5.3 搜寻Win—3 268
D.5.4 问题Win—4 269
D.5.5 调试Win—5 270
D.5.6 断点Win—6 270
D.5.7 日誌Win—7 271
D.6 使用编辑器 272
D.6.1 使用编辑模式 272
D.6.2 使用跳转栏 272
D.7 使用辅助 275
D.8 在编辑器视窗中获取帮助 276
D.9 使用实用工具——检查器 276
D.10 使用实用工具——库 279
D.10.1 档案模板库 280
D.10.2 代码片段库 281
D.10.3 对象库 283
D.10.4 媒体库 283
D.11 使用文本编辑器 283
D.11.1 设定编辑首选项 284
D.11.2 使用Fix—It和代码补全 286
D.12 使用Organizer视窗 287
第1章 Objective—C概述 2
1.1 Objective—C简介 2
1.2 注册成为Apple开发者 3
1.2.1 选择适合自己的计画 3
1.2.2 选择自己的会员类别 4
1.2.3 注册自己的AppleID 5
1.3 配置开发环境 5
1.3.1 Xcode简介 5
1.3.2 运行第一个项目 6
1.4 总结 12
1.5 问与答 12
1.6 测验 12
1.6.1 问题 12
1.6.2 答案 12
1.7 练习 13
第2章 使用Objective—C进行面向对象程式设计 14
2.1 Objective—C世界中的面向对象程式设计 14
2.1.1 实现面向对象程式设计 14
2.1.2 构建面向对象项目 15
2.1.3 框架初探 15
2.2 使用对象创建C 16
2.2.1 理解数据抽象 17
2.2.2 研究封装 17
2.2.3 使用访问器(Accessor)管理封装 19
2.3 管理Objective—C世界中的继承 20
2.4 总结 21
2.5 问与答 21
2.6 测验 21
2.6.1问题 21
2.6.2答案 21
2.7 练习 22
第3章 使用Objective—C中的面向对象特性 23
3.1 使用讯息与方法进行通信 23
3.1.1 简单讯息 23
3.1.2 声明方法 24
3.1.3 使用类方法 24
3.1.4 使用id——强和弱类型变数 25
3.1.5 嵌套讯息 25
3.1.6 方法签名和参数初探 26
3.2 分配和初始化对象 27
3.3 总结 27
3.4 问与答 28
3.5 测验 28
3.5.1 问题 28
3.5.2 答案 28
3.6 练习 28
第4章 使用Git原始码仓库来组织项目 29
4.1 开始使用Xcode 29
4.2 跟蹤原始码 32
4.2.1 原始码控制探究 33
4.2.2 在原始码仓库的世界中工作 34
4.2.3 在Xcode中使用Git 35
4.3 使用远程仓库 43
4.4 总结 46
4.5 问与答 46
4.6 测验 47
4.6.1 问题 47
4.6.2 答案 47
4.7 练习 47
第5章 使用编译器指令 48
5.1 浏览项目 48
5.2 使用编译器指令 50
5.2.1 使用基础指令 50
5.2.2 Prefix头初探 50
5.2.3 main.m中的普通C代码初探 51
5.2.4 研究头(.h)档案 52
5.2.5 深入探究讯息(.m)档案 53
5.3 使用Objective—C编译器指令 55
5.4 总结 55
5.5 问与答 55
5.6 测验 55
5.6.1 问题 55
5.6.2 答案 56
5.7 练习 56
第2部分
第6章 讯息和试验床应用程式探究 58
6.1 创建测试套用 58
6.2 添加一个文本域并将其与代码连线起来 61
6.3 向文本域传送讯息 67
6.4 複习讯息语法 68
6.5 总结 69
6.6 问与答 69
6.7 测验 69
6.7.1 问题 69
6.7.2 答案 69
6.8 练习 70
第7章 在接口档案中声明类 71
7.1 让Xcode完成工作 71
7.1.1 设计类 71
7.1.2 準备创建类 72
7.2 浏览类层次 76
7.2.1 调用超类中的方法 76
7.2.2 协定简介 77
7.3 声明类 78
7.3.1 编写基本的类声明 78
7.3.2 使用前向引用 79
7.4 总结 79
7.5 问与答 80
7.6测验 80
7.6.1问题 80
7.6.2 答案 80
7.7 练习 80
第8章 在接口档案中声明实例变数 81
8.1 声明实例变数和属性 81
8.2 使用类 81
8.2.1 将类实例放置在上下文中 82
8.2.2 选择上下文 82
8.3 使用id创建一个引用CurrencyConverter的实例变数 83
8.4 使用类名称创建一个引用CurrencyConverter的实例变数 85
8.5 使用超类名创建一个引用CurrencyConverter的实例变数 87
8.6 管理实例变数的作用域 89
8.7 总结 90
8.8 问与答 90
8.9 测验 90
8.9.1 问题 90
8.9.2 答案 90
8.10 练习 90
第9章 在接口档案中声明属性 91
9.1 接口变数和属性比较 91
9.1.1 複习基本的变数声明 92
9.1.2 创建声明属性:基础 93
9.1.3 处理对象占用的记忆体 94
9.1.4 使用声明属性(Properties)的特性(Attributes) 95
9.2 使用声明属性 95
9.2.1 使用讯息语法访问属性 96
9.2.2 使用点语法访问属性 96
9.3 使用特性(Attributes) 97
9.3.1 访问器方法 97
9.3.2 可写性 98
9.3.3 Setter语义 98
9.3.4 原子性 98
9.4 使用其他特性装饰器 99
9.5 实现属性 99
9.5.1 使用@synthesize创建访问器 99
9.5.2 使用@dynamic允诺数据 100
9.6 总结 100
9.7 问与答 100
9.8 测验 100
9.8.1 问题 100
9.8.2 答案 101
9.9 练习 101
第10章 在接口档案中声明方法 102
10.1 使用类中的方法 102
10.2 複习方法语法 103
10.2.1 区分类和实例方法 103
10.2.2 方法声明探究 104
10.2.3 编写方法声明 106
10.2.4 从方法返回複杂数据结构 106
10.3 总结 107
10.4 问与答 107
10.5 测验 107
10.5.1 问题 107
10.5.2 答案 108
10.6 练习 108
第11章 在接口档案中声明动作 109
11.1 动作简介 109
11.2 MacOSX和iOS中的动作比较 118
11.2.1 断开与动作的连线 120
11.3 问与答 120
11.4 测验 121
11.4.1 问题 121
11.4.2 答案 121
11.5 练习 121
第12章 使用选择器路由讯息 122
12.1 深入研究Objective—C讯息 122
12.2 深入研究Objective—C运行时 123
12.3 使用SEL和@selector() 124
12.4 使用performSelector 125
12.4.1 使用@selector()创建选择器 125
12.4.2 根据字元串创建选择器 126
12.4.3 使用选择器 126
12.5 使用NSInvocation 128
12.5.1 创建NSInvocation 128
12.5.2 使用NSInvocation属性 129
12.5.3 调用NSInvocation 130
12.6 测试一个实例是否能够回响选择器 131
12.7 总结 131
12.8 问与答 131
12.9 测验 132
12.9.1 问题 132
12.9.2 答案 132
12.10 练习 132
第13章 基于Foundation框架构建应用程式 133
13.1 Foundation框架探究 133
13.2 Foundation类 134
13.2.1 根类 134
13.2.2 其他类 135
13.3 Foundation範式与策略 136
13.3.1 可变性 136
13.3.2 类簇 136
13.3.3 通知 137
13.4 总结 139
13.5 问与答 139
13.6 测验 140
13.6.1 问题 140
13.6.2 答案 140
13.7 练习 140
第14章 在实现档案中定义一个类 141
14.1 创建一个新项目 141
14.1.1 重新思考动态类型 142
14.1.2 设计(Currency)Converter 142
14.2 创建新套用 144
14.3 实现方法 147
14.4 使用init方法扩展类 150
14.5 总结 151
14.6 问与答 151
14.7 测验 151
14.7.1 问题 151
14.7.2 答案 152
14.8 练习 152
第15章 使用集合组织数据 153
15.1 收集对象 153
15.2 熟悉属性列表 155
15.2.1在属性列表中使用集合 155
15.2.2 在运行时根据属性列表构建集合 156
15.3 集合类比较 156
15.4 创建集合 157
15.4.1 使用公共集合创建方法 157
15.4.2 读取和写入数组 158
15.4.3 读取和写入字典 159
15.4.4 创建集合 160
15.5 枚举集合 160
15.5.1 NSEnumerator方法探究 160
15.5.2 为集合创建NSEnumerator实例 160
15.6 测试集合中的成员关係 162
15.7 访问集合中的对象 162
15.8 总结 163
15.9 问与答 163
15.10 测验 163
15.10.1 问题 163
15.10.2 答案 163
15.11 练习 164
第16章 管理记忆体和运行时对象 165
16.1 管理记忆体中的对象 165
16.2 手工管理引用计数 166
16.2.1 释放对象 167
16.2.2 向Converter添加记忆体管理功能 167
16.2.3 记忆体管理小结 169
16.3 使用ARC管理引用计数 169
16.3.1 使用声明属性特性 169
16.3.2 最佳化Converter 170
16.4 变数限定符 171
16.5 自动释放变数 171
16.6 总结 172
16.7 问与答 172
16.8 测验 172
16.8.1 问题 172
16.8.2 答案 172
16.9 练习 172
第3部分
第17章 使用协定和委託(Delegate)扩展一个类 176
17.1 子类化的优缺点探究 176
17.2 MultipleDetailViews示例代码探究 177
17.3 深入协定 181
17.4 使用委託 182
17.4.1 从头档案中获取更多帮助 183
17.4.2 在InterfaceBuilder中查看连线 183
17.5 总结 185
17.6 问与答 185
17.7 测验 185
17.7.1 问题 185
17.7.2 答案 186
17.8 练习 186
第18章 使用分类和扩展(Extension)扩充一个类 187
18.1 分类和协定比较 187
18.1.1 选择何时使用分类 187
18.1.2 分类与其他技术比较 188
18.2 分类和子类比较 188
18.2.1 修改类层次 188
18.2.2 将变更限制在分类中 189
18.3 使用分类 189
18.4 使用类扩展 192
18.5 使用非正式协定 192
18.6 总结 192
18.7 问与答 192
18.8 测验 193
18.8.1 问题 193
18.8.2 答案 193
18.9 练习 193
第19章 使用关联引用和快速枚举 194
19.1 学习Objective—C2.0中节省时间的特性 194
19.2 通过添加实例变数(部分)扩展类 195
19.2.1 添加一个关联引用 195
19.2.2 读取和设定一个关联引用 196
19.2.3 根据键删除一个关联引用 198
19.2.4 删除一个对象中的所有关联引用 198
19.3 使用快速枚举 198
19.3.1 使用快速枚举 198
19.3.2 通过一个NSEnumerator使用快速枚举 199
19.4 总结 200
19.5 问与答 200
19.6 测验 200
19.6.1 问题 200
19.6.2 答案 200
19.7 练习 200
第20章 使用块 201
20.1 複习块 201
20.2 回调函式探究 202
20.3 引入块 204
20.3.1 创建块作为块变数 205
20.3.2 使用块变数 205
20.4 学习Cocoa中的块 207
20.4.1 NSString中的方法enumerateLinesUsingBlock: 207
20.4.2 NSArrayenumerateObjectsUsingBlock: 208
20.4.3 NSSetenumerateObjectsUsingBlock: 208
20.4.4 NSDictionaryenumerateKeysAndObjectsUsingBlock: 208
20.5 深入研究Cocoa块和记忆体 208
20.6 总结 209
20.7 问与答 209
20.8 测验 209
20.8.1 问题 209
20.8.2 答案 210
20.9 练习 210
第4部分
第21章 处理异常 212
21.1 重新思考异常和错误 212
21.2 异常和错误类介绍 213
21.2.1 使用异常 213
21.2.2 使用错误 214
21.2.3 深入学习NSException 214
21.2.4 深入学习NSError 214
21.3 识别一个异常 216
21.4 抛出一个异常 217
21.5 捕获一个异常 218
21.6 总结 218
21.7 问与答 219
21.8 测验 219
21.8.1 问题 219
21.8.2 答案 219
21.9 练习 219
第22章 集中分发:使用伫列和执行绪 220
22.1 开始使用并发 220
22.1.1 深入研究计算机中的处理器 220
22.1.2 在不重写用户套用的情况下使用并发 221
22.1.3 使用执行绪实现并发 221
22.1.4 集中分发(GCD)简介 222
22.2 伫列简介 222
22.2.1 分发伫列 223
22.2.2 分发源 223
22.2.3 操作伫列 224
22.3 使用分发伫列 224
22.3.1 使用全局并发分发伫列 224
22.3.2 向全局并发伫列添加任务 225
22.3.3 使用伫列设计套用 225
22.4 总结 226
22.5 问与答 226
22.6 测验 226
22.6.1 问题 226
22.6.2 答案 226
22.7 练习 226
第23章 使用调试器 228
23.1 记录信息 228
23.2 使用控制台日誌 229
23.2.1 使用NSLog 229
23.2.2 增强NSLog 230
23.3 使用智慧型断点 231
23.3.1 使用讯息增强断点 232
23.3.2 根据条件触发 234
23.4 总结 235
23.5 问与答 235
23.6 测验 236
23.6.1 问题 236
23.6.2 答案 236
23.7 练习 236
第24章 使用Instruments来分析 237
24.1 考虑使用Instruments 237
24.2 深入学习Instruments 239
24.3 开始使用Instruments 241
24.4 连线到iOS模拟器 243
24.5 总结 244
24.6 问与答 245
24.7 测验 245
24.7.1 问题 245
24.7.2 答案 245
24.8 练习 245
第5部分
附录A C语法小结 248
A.1 数据类型 248
A.1.1 枚举类型 248
A.1.2 Struct类型 249
A.1.3 指针 249
A.1.4 数组 249
A.2 控制结构 250
A.2.1 if语句 250
A.2.2 switch语句 250
A.2.3 重複语句 250
附录B 套用、包和Bundle 251
附录C 为开发和测试对套用进行归档和打包 255
附录D Xcode4简介 258
D.1 了解Xcode 258
D.2 再见“HelloWorld” 259
D.2.1 使用命令式和声明式程式设计範式 259
D.2.2 使用面向对象程式设计 260
D.3 MacOSX和iOS平台套用开发简介 261
D.4 开始使用Xcode 262
D.5 使用导航栏 264
D.5.1 项目Win—1 264
D.5.2 符号Win—2 267
D.5.3 搜寻Win—3 268
D.5.4 问题Win—4 269
D.5.5 调试Win—5 270
D.5.6 断点Win—6 270
D.5.7 日誌Win—7 271
D.6 使用编辑器 272
D.6.1 使用编辑模式 272
D.6.2 使用跳转栏 272
D.7 使用辅助 275
D.8 在编辑器视窗中获取帮助 276
D.9 使用实用工具——检查器 276
D.10 使用实用工具——库 279
D.10.1 档案模板库 280
D.10.2 代码片段库 281
D.10.3 对象库 283
D.10.4 媒体库 283
D.11 使用文本编辑器 283
D.11.1 设定编辑首选项 284
D.11.2 使用Fix—It和代码补全 286
D.12 使用Organizer视窗 287