书籍详情
精通Objective-C
作者:(美)Keith Lee 著
出版社:人民邮电出版社
出版时间:2015-02-01
ISBN:9787115378842
定价:¥79.00
购买这本书可以去
内容简介
《精通Objective-C》是Objective-C的高阶教程,全面深入地介绍了Objective-C编程语言、Objective-C的运行时环境和重要的API。《精通Objective-C》通过清晰易懂的方式介绍了Objective-C的关键概念,还详细介绍了一些比较复杂的特性。书中还包括许多实用的示例(代码片段和完整程序),让读者能快速学以致用。《精通Objective-C》适合有一定Objective-C开发经验的中高级开发者,以及没有用过Objective-C,但拥有C语言编程经验并理解面向对象编程思想的开发者阅读。
作者简介
Keith Lee 资深苹果产品和软件开发专家。拥有二十多年的开发经验,主要从事移动设备、台式机和服务器端软件系统的设计和实现。当前的主攻方向是OS X和iOS平台以及新编程语言的软件开发。Keith Lee还是一位知名的作曲家,他的作品已被传播到多个国家。他与妻子和女儿居住在加利福尼亚,读者可通过ProObjectiveC@icloud.com与他联系。
目录
目录
第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 NSNumber类 158
10.3.3 NSDecimalNumber类 159
10.3.4 NSNumber常量 159
10.3.5 对日期和时间的支持 160
10.3.6 NSCache类 160
10.4 集合 161
10.4.1 NSArray类 161
10.4.2 NSPointerArray类 162
10.4.3 NSDictionary类 162
10.4.4 NSMapTable类 163
10.4.5 NSSet类 163
10.4.6 NSCountedSet类 163
10.4.7 NSHashTable类 163
10.4.8 NSPointerFunctions类 164
10.5 XML处理类 164
10.5.1 XML的DTD处理类 164
10.5.2 基于树形结构的XML
处理类 164
10.5.3 事件驱动的XML处理类 165
10.6 谓词类 165
10.7 小结 166
第11章 Foundation框架中的系统
服务 167
11.1 网络服务 167
11.1.1 NSHost类 167
11.1.2 Bonjour网络服务 167
11.2 应用服务 168
11.3 正则表达式和文本处理 168
11.4 文件系统实用程序 169
11.4.1 应用程序包 169
11.4.2 文件管理 170
11.4.3 数据流的输入输出 170
11.4.4 元数据查询 171
11.5 并发机制和线程 171
11.5.1 线程管理 171
11.5.2 并行操作 172
11.5.3 锁定 173
11.5.4 计时器和运行循环 173
11.5.5 创建Bonjour网络服务
客户端 174
11.6 URL处理 178
11.6.1 URL加载 178
11.6.2 缓存管理 180
11.6.3 使用URL加载API下载
资源 180
11.6.4 身份认证和证书管理 185
11.6.5 Cookie管理 186
11.6.6 协议支持 186
11.7 进程间通信 186
11.7.1 通过信道通信 187
11.7.2 通过端口通信 187
11.7.3 端口注册 187
11.8 小结 188
第12章 Foundation框架的专用服务 189
12.1 通知 189
12.2 归档和序列化 192
12.2.1 归档 192
12.2.2 属性列表序列化 193
12.2.3 归档对象图 195
12.3 分布式对象 204
12.4 脚本 205
12.5 小结 205
第13章 Foundation框架函数和数据
类型 206
13.1 Foundation框架函数 206
13.1.1 断言 206
13.1.2 记录日志 209
13.1.3 包 209
13.1.4 十进制数值运算和字节
排序 211
13.1.5 与运行时系统进行交互 214
13.1.6 文件路径 214
13.1.7 几何图形 215
13.2 数据类型 216
13.3 常数 216
13.4 小结 216
第14章 专家级技巧:错误处理 217
14.1 运行时错误情况 217
14.1.1 断言 217
14.1.2 错误编码 218
14.1.3 错误对象 218
14.1.4 异常 218
14.2 NSError类 218
14.2.1 使用错误对象 219
14.2.2 处理委托方法错误 221
14.2.3 通过间接方式创建错误
对象 225
14.2.4 错误恢复 226
14.2.5 错误回应对象 227
14.2.6 NSError编码 227
14.3 异常处理 227
14.4 NSException类 228
14.4.1 异常和内存管理 229
14.4.2 执行异常处理 230
14.5 Foundation框架标准异常名称 232
14.6 错误处理指导原则 233
14.7 小结 234
第15章 块 235
15.1 块的语法 235
15.2 块就是闭包 239
15.2.1 词汇范围 239
15.2.2 可修改的__block变量 241
15.3 块的内存管理 241
15.4 使用块 243
15.4.1 使用块为数组排序 243
15.4.2 使用块加载URL 245
15.4.3 使用块的并行编程方式 248
15.5 小结 251
第16章 Objective-C常量 252
16.1 常量 2
第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 NSNumber类 158
10.3.3 NSDecimalNumber类 159
10.3.4 NSNumber常量 159
10.3.5 对日期和时间的支持 160
10.3.6 NSCache类 160
10.4 集合 161
10.4.1 NSArray类 161
10.4.2 NSPointerArray类 162
10.4.3 NSDictionary类 162
10.4.4 NSMapTable类 163
10.4.5 NSSet类 163
10.4.6 NSCountedSet类 163
10.4.7 NSHashTable类 163
10.4.8 NSPointerFunctions类 164
10.5 XML处理类 164
10.5.1 XML的DTD处理类 164
10.5.2 基于树形结构的XML
处理类 164
10.5.3 事件驱动的XML处理类 165
10.6 谓词类 165
10.7 小结 166
第11章 Foundation框架中的系统
服务 167
11.1 网络服务 167
11.1.1 NSHost类 167
11.1.2 Bonjour网络服务 167
11.2 应用服务 168
11.3 正则表达式和文本处理 168
11.4 文件系统实用程序 169
11.4.1 应用程序包 169
11.4.2 文件管理 170
11.4.3 数据流的输入输出 170
11.4.4 元数据查询 171
11.5 并发机制和线程 171
11.5.1 线程管理 171
11.5.2 并行操作 172
11.5.3 锁定 173
11.5.4 计时器和运行循环 173
11.5.5 创建Bonjour网络服务
客户端 174
11.6 URL处理 178
11.6.1 URL加载 178
11.6.2 缓存管理 180
11.6.3 使用URL加载API下载
资源 180
11.6.4 身份认证和证书管理 185
11.6.5 Cookie管理 186
11.6.6 协议支持 186
11.7 进程间通信 186
11.7.1 通过信道通信 187
11.7.2 通过端口通信 187
11.7.3 端口注册 187
11.8 小结 188
第12章 Foundation框架的专用服务 189
12.1 通知 189
12.2 归档和序列化 192
12.2.1 归档 192
12.2.2 属性列表序列化 193
12.2.3 归档对象图 195
12.3 分布式对象 204
12.4 脚本 205
12.5 小结 205
第13章 Foundation框架函数和数据
类型 206
13.1 Foundation框架函数 206
13.1.1 断言 206
13.1.2 记录日志 209
13.1.3 包 209
13.1.4 十进制数值运算和字节
排序 211
13.1.5 与运行时系统进行交互 214
13.1.6 文件路径 214
13.1.7 几何图形 215
13.2 数据类型 216
13.3 常数 216
13.4 小结 216
第14章 专家级技巧:错误处理 217
14.1 运行时错误情况 217
14.1.1 断言 217
14.1.2 错误编码 218
14.1.3 错误对象 218
14.1.4 异常 218
14.2 NSError类 218
14.2.1 使用错误对象 219
14.2.2 处理委托方法错误 221
14.2.3 通过间接方式创建错误
对象 225
14.2.4 错误恢复 226
14.2.5 错误回应对象 227
14.2.6 NSError编码 227
14.3 异常处理 227
14.4 NSException类 228
14.4.1 异常和内存管理 229
14.4.2 执行异常处理 230
14.5 Foundation框架标准异常名称 232
14.6 错误处理指导原则 233
14.7 小结 234
第15章 块 235
15.1 块的语法 235
15.2 块就是闭包 239
15.2.1 词汇范围 239
15.2.2 可修改的__block变量 241
15.3 块的内存管理 241
15.4 使用块 243
15.4.1 使用块为数组排序 243
15.4.2 使用块加载URL 245
15.4.3 使用块的并行编程方式 248
15.5 小结 251
第16章 Objective-C常量 252
16.1 常量 2
猜您喜欢