《精通Objective-C》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)李著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115378842
  • 页数:367 页
图书介绍:本书是Objective-C的高阶教程,针对已经具备一些Objective-C经验的中级到高级的开发人员,全面讲述了Objective-C的基础内容和高级性能,Objective-C运行时系统等,对如何充分利用Objective-C的强大功能,在Apple OS X,iOS平台上开发专业级应用进行了讲解。

第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 NSDecima lNumber类 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 常量 252

16.2 NSNumber常量 253

16.3 容器常量 254

16.3.1 NSArray常量 254

16.3.2 NSDictionary常量 255

16.4 表达式常量 256

16.5 对象下标 257

16.5.1 NSArray对象的下标 257

16.5.2 NSDictionary对象的下标 258

16.6 自定义下标 259

16.7 使用自定义下标编辑寄存器值 260

16.8 小结 270

第17章 并发编程 272

17.1 并发编程的基本原则 272

17.1.1 并发处理的优势 273

17.1.2 实现并发处理 274

17.2 并行处理带来的挑战 274

17.3 共享数据 275

17.4 消息传递 276

17.5 在Objective-C中实现并发编程 276

17.6 语言特性 277

17.7 消息传递 278

17.8 线程 279

17.8.1 NSObject线程 279

17.8.2 NSThread 280

17.8.3 线程同步 281

17.9 使用线程实现并发处理 284

17.10 操作和操作队列 288

17.11 实现并发操作 291

17.12 使用操作队列实现并发处理 295

17.13 Grand Central Dispatch 298

17.14 为并发编程选择合适的API 301

17.15 小结 301

第18章 键值编程 303

18.1 键值编码 303

18.2 设计和实现KVC 306

18.2.1 键值编码API 307

18.2.2 键值搜索模式 308

18.2.3 属性访问方法的命名约定 308

18.2.4 一对多属性访问方法命名约定 309

18.2.5 键值检验 310

18.2.6 键值编码的集合操作符 311

18.3 键值观察 313

18.3.1 键值观察和通知 314

18.3.2 键值观察API 314

18.4 KVO的设计和实现 316

18.5 使用键值编程 316

18.6 小结 323

附录A 语言元素 325

附录B Xcode的配置功能 337

附录C 使用LLDB 353