《iOS编程基础:Swift、Xcode和Cocoa入门指南》ios编程人员推荐书籍

  • A+
所属分类:分享

本书实际上是我的另一本书《Programming iOS 9》的配套参考书,该书以本书的结束作为起点。它们之间是互补的。我相信,这两本书的结构合理、内容通俗易懂。

它们提供了开始编写iOS应用所需的完整基础知识;这样,在开始编写iOS应用时,你会对将要做的事情以及方向有着深刻的理解。

如果编写iOS程序类似于用砖盖房子,那么本书将会介绍什么是砖以及如何使用它,而《Programming iOS 9》则会给你一些实际的砖并告诉你如何将其堆砌起来。

 

《iOS编程基础:Swift、Xcode和Cocoa入门指南》ios编程人员推荐书籍

 

目录

前言 1

第一部分 语言

第1章 Swift架构纵览 11

1.1 基础 11

1.2 万物皆对象 12

1.3 对象类型的3种风格 14

1.4 变量 14

1.5 函数 15

1.6 Swift文件的结构 16

1.7 作用域与生命周期 19

1.8 对象成员 20

1.9 命名空间 20

1.10 模块 21

1.11 实例 22

1.12 为何使用实例 24

1.13 self 26

1.14 隐私 27

1.15 设计 29

1.15.1 对象类型与API 29

1.15.2 实例创建、作用域与生命周期 31

1.15.3 小结 32

第2章 函数 34

2.1 函数参数与返回值 34

2.1.1 Void返回类型与参数 37

2.1.2 函数签名 38

2.2 外部参数名 38

2.3 重载 41

2.4 默认参数值 42

2.5 可变参数 43

2.6 可忽略参数 44

2.7 可修改参数 44

2.8 函数中的函数 48

2.9 递归 49

2.10 将函数作为值 50

2.11 匿名函数 53

2.12 定义与调用 57

2.13 闭包 58

2.13.1 闭包是如何改善代码的 59

2.13.2 返回函数的函数 61

2.13.3 使用闭包设置捕获变量 64

2.13.4 使用闭包保存捕获的环境 64

2.14 柯里化函数 66

第3章 变量与简单类型 68

3.1 变量作用域与生命周期 68

3.2 变量声明 69

3.3 计算初始化器 72

3.4 计算变量 73

3.5 setter观察者 76

3.6 延迟初始化 77

3.7 内建简单类型 79

3.7.1 Bool 80

3.7.2 数字 81

3.7.3 String 88

3.7.4 Character 93

3.7.5 Range 96

3.7.6 元组 98

3.7.7 Optional 102

第4章 对象类型 114

4.1 对象类型声明与特性 114

4.1.1 初始化器 115

4.1.2 属性 122

4.1.3 方法 125

4.1.4 下标 127

4.1.5 嵌套对象类型 128

4.1.6 实例引用 129

4.2 枚举 131

4.2.1 带有固定值的Case 132

4.2.2 带有类型值的Case 133

4.2.3 枚举初始化器 134

4.2.4 枚举属性 136

4.2.5 枚举方法 137

4.2.6 为何使用枚举 138

4.3 结构体 139

4.3.1 结构体初始化器、属性与方法 139

4.3.2 将结构体作为命名空间 140

4.4 类 141

4.4.1 值类型与引用类型 142

4.4.2 子类与父类 146

4.4.3 类初始化器 151

4.4.4 类析构器 159

4.4.5 类属性与方法 159

4.5 多态 161

4.6 类型转换 164

4.7 类型引用 168

4.8 协议 172

4.8.1 为何使用协议 174

4.8.2 协议类型测试与转换 176

4.8.3 声明协议 177

4.8.4 可选协议成员 178

4.8.5 类协议 180

4.8.6 隐式必备初始化器 180

4.8.7 字面值转换 182

4.9 泛型 183

4.9.1 泛型声明 185

4.9.2 类型约束 186

4.9.3 显式特化 189

4.9.4 关联类型链 190

4.9.5 附加约束 192

4.10 扩展 196

4.10.1 扩展对象类型 196

4.10.2 扩展协议 199

4.10.3 扩展泛型 202

4.11 保护类型 203

4.11.1 AnyObject 203

4.11.2 AnyClass 206

4.11.3 Any 207

4.12 集合类型 208

4.12.1 Array 208

4.12.2 Dictionary 222

4.12.3 Set 227

第5章 流程控制与其他 232

5.1 流程控制 232

5.1.1 分支 233

5.1.2 循环 245

5.1.3 跳转 250

5.2 运算符 261

5.3 隐私性 264

5.3.1 Private声明 265

5.3.2 Public声明 267

5.3.3 隐私性规则 267

5.4 内省 267

5.5 内存管理 269

5.5.1 弱引用 270

5.5.2 无主引用 272

5.5.3 匿名函数中的弱引用与无主引用 273

5.5.4 协议类型引用的内存管理 275

第二部分 IDE

第6章 Xcode项目剖析 279

6.1 新建项目 279

6.2 项目窗口 281

6.2.1 导航窗格 282

6.2.2 辅助窗格 288

6.2.3 编辑器 289

6.3 项目文件及其依赖 291

6.4 目标 293

6.4.1 构建阶段 294

6.4.2 构建设置 296

6.4.3 配置 297

6.4.4 方案与目标 298

6.5 从项目到运行应用 300

6.5.1 构建设置 303

6.5.2 属性列表设置 303

6.5.3 nib文件 304

6.5.4 其他资源 305

6.5.5 代码文件与应用启动过程 307

6.5.6 框架与SDK 312

6.6 对项目内容进行重命名 314

第7章 nib管理 316

7.1 nib编辑器界面概览 317

7.1.1 文档大纲 318

7.1.2 画布 321

7.1.3 查看器与库 323

7.2 nib加载 324

7.2.1 何时加载nib 325

7.2.2 手工加载nib 326

7.3 连接 328

7.3.1 插座变量 328

7.3.2 nib拥有者 330

7.3.3 自动配置nib 333

7.3.4 误配置的插座变量 333

7.3.5 删除插座变量 335

7.3.6 创建插座变量的其他方式 335

7.3.7 插座变量集合 338

7.3.8 动作连接 339

7.3.9 创建动作的其他方式 340

7.3.10 误配置的动作 342

7.3.11 nib之间的连接——不行! 342

7.4 nib实例的其他配置 343

第8章 文档 346

8.1 文档窗口 346

8.2 类文档页面 349

8.3 示例代码 351

8.4 快速帮助 352

8.5 符号 353

8.6 头文件 354

8.7 互联网资源 355

第9章 项目的生命周期 356

9.1 设备架构与条件代码 356

9.1.1 向后兼容 357

9.1.2 设备类型 359

9.2 版本控制 360

9.3 编辑与代码导航 362

9.3.1 自动补令 363

9.3.2 代码片段 364

9.3.3 Fix-it与实时语法检查 365

9.3.4 导航 366

9.3.5 查找 368

9.4 在模拟器中运行 369

9.5 调试 370

9.5.1 原始调试 370

9.5.2 Xcode调试器 372

9.6 测试 378

9.7 清理 383

9.8 在设备中运行 384

9.8.1 在没有开发者计划成员资格的情况下运行 386

9.8.2 获取开发者计划成员资格 387

9.8.3 获取证书 387

9.8.4 获取开发配置文件 389

9.8.5 运行应用 390

9.8.6 配置文件与设备管理 390

9.9 分析 391

9.9.1 仪表盘 391

9.9.2 Instruments 392

9.10 本地化 394

9.10.1 本地化Info.plist 396

9.10.2 本地化nib文件 398

9.10.3 本地化代码字符串 399

9.10.4 使用XML文件进行本地化 401

9.11 归档与发布 403

9.12 Ad Hoc发布 405

9.13 最后的准备 406

9.13.1 应用图标 407

9.13.2 其他图标 408

9.13.3 启动图片 408

9.13.4 屏幕截图与视频预览 409

9.13.5 属性列表设置 410

9.14 向App Store提交应用 411

第三部分 Cocoa

第10章 Cocoa类 417

10.1 子类化 417

10.2 类别与扩展 420

10.2.1 Swift如何使用扩展 420

10.2.2 你应该如何使用扩展 421

10.2.3 Cocoa如何使用类别 421

10.3 协议 423

10.3.1 非正式协议 425

10.3.2 可选方法 425

10.4 Foundation类精讲 427

10.4.1 常用的结构体与常量 427

10.4.2 NSString及相关类 428

10.4.3 NSDate及相关类 431

10.4.4 NSNumber 433

10.4.5 NSValue 434

10.4.6 NSData 435

10.4.7 相等与比较 435

10.4.8 NSIndexSet 437

10.4.9 NSArray与NSMutableArray 438

10.4.10 NSDictionary与NSMutableDictionary 440

10.4.11 NSSet及相关类 440

10.4.12 NSNull 442

10.4.13 不变与可变 442

10.4.14 属性列表 443

10.5 访问器、属性与键值编码 443

10.5.1 Swift访问器 445

10.5.2 键值编码 446

10.5.3 键值编码的使用 447

10.5.4 KVC与插座变量 448

10.5.5 键路径 449

10.5.6 数组访问器 450

10.6 NSObject揭秘 450

第11章 Cocoa事件 453

11.1 为何使用事件 453

11.2 子类化 454

11.3 通知 455

11.3.1 接收通知 456

11.3.2 取消注册 458

11.3.3 发布通知 459

11.3.4 NSTimer 460

11.4 委托 461

11.4.1 Cocoa委托 461

11.4.2 实现委托 463

11.5 数据源 465

11.6 动作 465

11.7 响应器链 468

11.7.1 推迟职责 469

11.7.2 Nil-Targeted动作 470

11.8 键值观测 471

11.9 事件泥潭 475

11.10 延迟执行 477

第12章 内存管理 480

12.1 Cocoa内存管理的原理 480

12.2 Cocoa内存管理的原则 481

12.3 ARC及其作用 482

12.4 Cocoa对象管理内存的方式 483

12.5 自动释放池 484

12.6 实例属性的内存管理 486

12.7 保持循环与弱引用 487

12.8 值得注意的内存管理情况 488

12.9 nib加载与内存管理 492

12.10 CFTypeRefs的内存管理 493

12.11 属性的内存管理策略 495

12.12 调试内存管理的错误 497

第13章 对象间通信 499

13.1 实例化可见性 500

13.2 关系可见性 502

13.3 全局可见性 503

13.4 通知与KVO 504

13.5 模型-视图-控制器 505

  • 我的微信
  • 微信ID:87797151
  • weinxin
  • 我的微信公众号
  • 公众号ID:fandihui8
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: