描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115437204
涵盖苹果力推的新技术HomeKit、HealthKit、watchOS 和Touch ID
301个典型实例 1个综合实例,全程10个小时的视频讲解
本书适合Objective-C初学者、Objective-C开发人员、iOS初学者、iOS程序员、iPhone开发人员、iPad开发人员学习,也可以作为相关培训学校和大专院校相关专业的教学用书。
第1章 认识“进步”快的Objective-C语言 2
1.1 耀眼的新星 2
1.1.1 一份统计数据 2
1.1.2 Objective-C的走红过程 3
1.1.3 究竟何为Objective-C 3
1.1.4 苹果公司选择Objective-C的原因 3
1.2 Objective-C的优点和缺点 4
1.3 搭建Objective-C开发环境 5
1.3.1 Xcode介绍 5
1.3.2 下载Xcode7 6
1.3.3 安装Xcode 7 6
1.3.4 创建iOS 9项目并启动模拟器 8
1.3.5 打开现有的iOS 9项目 9
1.4 段Objective-C程序 11
1.4.1 使用Xcode编辑代码 11
1.4.2 注释 14
1.4.3 #import指令 15
1.4.4 主函数 16
1.5 Xcode集成开发环境介绍 17
1.5.1 基本面板 17
1.5.2 Xcode 7的基本操作 22
1.5.3 使用Xcode 7帮助系统 29
第二篇 核心语法
第2章 常量、变量和数据类型 32
2.1 标识符和关键字 32
2.2 数据类型和常量 33
2.2.1 整数类型 33
2.2.2 float类型和double类型 35
2.2.3 char类型 36
2.2.4 字符常量 37
2.2.5 id类型 39
2.2.6 限定词 40
2.2.7 基本数据类型小结 41
2.2.8 NSLog函数 42
2.3 变量 43
2.3.1 定义变量 43
2.3.2 统一定义变量 45
2.4 字符串 46
第3章 运算符和表达式 47
3.1 运算符的种类 47
3.2 算术表达式 47
3.2.1 初步了解运算符的优先级 47
3.2.2 整数运算和一元负号运算符 49
3.2.3 模运算符 50
3.2.4 整型值和浮点值的相互转换 51
3.2.5 类型转换运算符 51
3.2.6 常量表达式 52
3.3 条件运算符 53
3.4 sizeof运算符 54
3.5 关系运算符 54
3.6 强制类型转换运算符 55
3.7 赋值运算符 56
3.7.1 基本赋值运算符 57
3.7.2 高级赋值运算符 57
3.7.3 通过计算器类演示运算符的用法 57
3.8 位运算符 59
3.8.1 按位与运算符 59
3.8.2 按位或运算符 59
3.8.3 按位异或运算符 60
3.8.4 求反运算符 60
3.8.5 向左移位运算符 61
3.8.6 向右移位运算符 61
3.8.7 头文件 62
3.9 逻辑运算符 62
3.10 逗号运算符 63
3.11 运算符小结 64
第4章 选择结构 66
4.1 顺序结构和选择结构 66
4.2 if语句 66
4.2.1 单分支结构 67
4.2.2 双分支结构 69
4.2.3 复合条件测试 70
4.2.4 if语句的嵌套 72
4.2.5 else if结构 74
4.3 switch语句 79
4.3.1 switch语句基础 79
4.3.2 任何两种情况的值都不能相同 80
4.3.3 switch语句小结 81
第5章 循环结构 82
5.1 语句 82
5.2 流程控制介绍 82
5.3 for循环语句 83
5.3.1 for循环基础 83
5.3.2 for语句的执行步骤 86
5.3.3 让for循环执行适当的次数 88
5.3.4 for循环嵌套 89
5.3.5 for循环的其他用法 90
5.4 while语句 91
5.4.1 基本while语句 91
5.4.2 算法在编程中的意义 93
5.4.3 while语句的陷阱 94
5.4.4 do-while语句 95
5.5 break语句 96
5.6 continue语句 97
5.7 goto语句 98
5.8 空语句 99
5.9 return语句 100
5.10 Boolean变量 100
第三篇 面向对象
第6章 面向对象——类、对象和方法 104
6.1 面向对象介绍 104
6.2 对象建模技术 105
6.2.1 功能模型 105
6.2.2 对象模型 105
6.2.3 动态模型 106
6.3 类的基础知识 106
6.3.1 类和实例 106
6.3.2 方法 106
6.3.3 实例和方法 107
6.3.4 认识Objective-C中的类 107
6.4 使用@interface定义类 108
6.4.1 设置科学的类名 109
6.4.2 实例变量 110
6.5 使用@implementation声明成员 111
6.6 program具体实现部分 112
6.7 类的使用 113
6.7.1 类的初始化 114
6.7.2 使用类实例 115
6.7.3 使用类的好处 116
6.8 类的高级应用 117
6.8.1 访问实例变量并封装数据 118
6.8.2 尽量分离接口和实现文件 119
6.9 隐藏和封装 122
6.9.1 什么是封装 122
6.9.2 访问控制符 123
6.9.3 合成存取器方法 125
6.9.4 使用点运算符访问属性 125
6.10 多参方法 126
6.10.1 不带参数名的方法 128
6.10.2 操作分数 128
6.11 局部变量 129
6.11.1 方法的参数 129
6.11.2 static关键字 130
6.11.3 self关键字 131
6.12 在方法中分配和返回对象 131
第7章 面向对象——继承 135
7.1 从根类谈起 135
7.1.1 继承的好处 135
7.1.2 继承的使用 137
7.1.3 进一步理解继承的概念 137
7.1.4 重写方法 139
7.2 方法重载 141
7.2.1 方法重载基础 141
7.2.2 重载的作用 142
7.2.3 选择正确的方法 143
7.2.4 重载dealloc方法 144
7.2.5 使用super关键字 145
7.2.6 连续继承 147
7.3 通过继承添加新的实例变量 147
7.4 调用动态方法 148
7.5 访问控制 150
7.6 Category类别 151
第8章 多态、动态类型和异常处理 154
8.1 多态 154
8.1.1 多态基础 154
8.1.2 实现多态 156
8.1.3 指针变量的强制类型转换 159
8.1.4 判断指针变量的实际类型 160
8.2 动态绑定和id类型 161
8.2.1 id类型的优势 161
8.2.2 与C#的比较说明 162
8.2.3 编译时和运行时检查 162
8.2.4 id数据类型与静态类型 163
8.2.5 动态类型的参数和返回类型 163
8.2.6 处理动态类型的方法 164
8.3 异常处理 166
8.3.1 用@try处理异常 166
8.3.2 使用@finally回收资源 168
8.3.3 自定义异常类 169
8.3.4 和C 异常处理进行比较 170
第9章 类别、协议和合成对象 172
9.1 类别 172
9.1.1 定义类别 172
9.1.2 类别的使用 174
9.1.3 用类别实现模块化设计 175
9.1.4 使用类别调用私有方法 179
9.1.5 扩展 179
9.2 协议 181
9.2.1 使用类别实现非正式协议 181
9.2.2 定义正式协议 183
9.2.3 遵守(实现)协议 185
9.2.4 协议和委托 187
9.3 合成对象 190
第10章 预处理程序 194
10.1 宏定义 194
10.1.1 无参宏定义 194
10.1.2 带参宏定义 196
10.1.3 #define语句的作用 199
10.1.4 高级类型定义 200
10.1.5 #运算符 202
10.1.6 ##运算符 203
10.2 #import语句 203
10.3 条件编译 205
10.3.1 #ifdef、#endif、#else和#ifndef语句 205
10.3.2 #if和#elif预处理程序语句 206
第11章 深入理解变量和数据类型 208
11.1 内存布局 208
11.2 自动变量 208
11.3 外部变量 209
11.4 作用域 210
11.4.1 控制实例变量作用域的指令 210
11.4.2 外部变量 210
11.4.3 静态变量 212
11.4.4 选择局部变量和全局变量 213
11.4.5 复合语句和作用域 213
11.5 存储类说明符 214
11.5.1 auto 214
11.5.2 const 214
11.5.3 volatile 215
11.5.4 static 216
11.5.5 extern 216
11.6 枚举数据类型 216
11.7 typedef语句 218
第四篇 知识进阶
第12章 Foundation框架类详解 222
12.1 数字对象 222
12.2 字符串处理 224
12.2.1 创建字符串对象 225
12.2.2 可变对象与不可变对象 227
12.2.3 可变字符串 231
12.2.4 释放字符串对象 233
12.3 数组对象 235
12.3.1 数组的存储 235
12.3.2 数组的比较机制 238
12.3.3 调用数组元素 239
12.3.4 操作数组对象 240
12.3.5 返回操作并生成访问器方法 242
12.3.6 枚举操作 244
12.3.7 使用枚举遍历查询信息 246
12.3.8 删除信息 248
12.3.9 数组排序 250
12.3.10 KVC和KVO开发 254
12.4 字典对象 255
12.4.1 NSDictionary功能介绍 255
12.4.2 创建可变字典 256
12.4.3 枚举字典 257
12.5 集合对象 258
12.5.1 NSSet类介绍 260
12.5.2 重复判断操作 262
12.5.3 NSMutableSet可编辑集合 263
12.5.4 NSCountedSet状态集合 264
12.5.5 有序集合 265
第13章 日期、时间、复制和谓词 267
13.1 赋值和复制 267
13.2 copy方法和mutableCopy方法的使用 267
13.3 浅复制和深复制 270
13.3.1 独立副本 271
13.3.2 复制的应用 271
13.4 使用alloc init…方式实现复制 273
13.5 NSCopyObject()的使用 273
13.6 用自定义类实现复制 274
13.7 用赋值方法和取值方法复制对象 276
13.8 复制可变和不可变对象 277
13.9 使用setter方法复制 278
13.10 谓词 278
13.10.1 创建谓词 279
13.10.2 用谓词过滤集合 279
13.10.3 在谓词中使用格式说明符 280
13.11 日期和时间处理 281
13.12 日期格式器 282
13.13 日历和日期组件 284
第14章 和C语言同质化的数据类型(上) 286
14.1 数组 286
14.1.1 一维数组 286
14.1.2 二维数组 288
14.1.3 显式初始化二维数组 289
14.1.4 多维数组的定义 291
14.1.5 多维数组的初始化 292
14.1.6 字符数组 294
14.2 函数 297
14.2.1 函数的种类 297
14.2.2 定义函数 299
14.2.3 函数的声明 299
14.2.4 函数原型 301
14.2.5 函数的参数 301
14.2.6 返回值 303
14.2.7 声明返回类型和参数类型 304
14.2.8 调用函数 305
14.2.9 函数的嵌套调用和递归调用 305
14.2.10 数组作为函数的参数 307
14.2.11 内部函数和外部函数 309
14.3 变量的作用域和生存期 310
14.3.1 变量的作用域 310
14.3.2 静态存储变量和动态存储变量 313
14.4 结构体 314
14.4.1 结构体基础 314
14.4.2 结构体变量的初始化 318
14.4.3 结构体数组 322
14.4.4 结构体和函数 324
14.4.5 结构体中的结构体 325
14.4.6 位字段 326
14.4.7 typedef 327
第15章 和C语言同质化的数据类型(下) 328
15.1 指针 328
15.1.1 指针基础 328
15.1.2 指针变量的运算 331
15.1.3 指针变量作为函数参数 334
15.1.4 指针和数组 335
15.1.5 指针和多维数组 339
15.1.6 指针和字符串 341
15.1.7 指针数组和多级指针 346
15.1.8 指针函数和函数指针 348
15.1.9 结构体指针 352
15.2 共用体 354
15.2.1 定义共用体类型和共用体变量 354
15.2.2 引用共用体变量 355
15.3 块 357
15.3.1 块的基本语法 357
15.3.2 块和局部变量 358
15.3.3 用typedef定义块类型 359
第16章 文件操作 361
16.1 Foundation框架的文件操作 361
16.2 用NSFileManager管理文件和目录 361
16.2.1 NSFileManager基础 362
16.2.2 访问文件属性和内容 365
16.2.3 使用NSData类 366
16.2.4 创建、删除、移动和复制文件 367
16.2.5 目录操作 367
16.2.6 枚举目录中的内容 369
16.2.7 查看目录的内容 371
16.3 路径操作类 372
16.3.1 常用的路径处理方法 374
16.3.2 复制文件 375
16.3.3 使用NSProcessInfo获取进程信息 377
16.4 用NSFileHandle实现文件I/O操作 378
16.5 使用NSURL读取网络资源 380
16.6 使用NSBundle处理项目资源 382
第17章 归档 384
17.1 使用XML属性列表进行归档 384
17.2 使用NSKeyedArchiver归档 385
17.3 NSCoding协议 388
17.4 编码方法和解码方法 389
17.5 使用NSData创建自定义文档 390
17.6 使用归档程序复制对象 391
17.7 归档总结 392
第五篇 核心组件
第18章 Xcode IB界面开发 396
18.1 IB基础 396
18.2 和IB密切相关的库面板 398
18.3 IB采用的方法 399
18.4 IB中的故事板 399
18.4.1 推出的背景 400
18.4.2 故事板的文档大纲 400
18.4.3 文档大纲的区域对象 401
18.5 创建界面 402
18.5.1 对象库 402
18.5.2 将对象加入到视图中 403
18.5.3 使用IB布局工具 404
18.6 定制界面外观 406
18.6.1 属性检查器的使用 406
18.6.2 设置辅助功能属性 407
18.6.3 测试界面 408
18.7 iOS 9控件的属性 408
18.8 实战演练——将界面的控件连接到代码 409
18.8.1 打开项目 409
18.8.2 输出口和操作 410
18.8.3 创建到输出口的连接 410
18.8.4 创建到操作的连接 412
18.9 实战演练——纯代码实现UI设计 413
第19章 使用Xcode编写MVC程序 416
19.1 MVC模式基础 416
19.1.1 诞生背景 416
19.1.2 分析结构 416
19.1.3 MVC的特点 417
19.1.4 使用MVC实现程序设计的结构化 417
19.2 Xcode中的MVC 418
19.2.1 基本原理 418
19.2.2 MVC的模板 418
19.3 在Xcode中实现MVC 419
19.3.1 视图 419
19.3.2 视图控制器 419
19.4 数据模型 420
19.5 实战演练——使用Single View Application模板 421
19.5.1 创建项目 422
19.5.2 规划变量和连接 425
19.5.3 设计界面 426
19.5.4 创建并连接输出口和操作 427
19.5.5 实现应用程序逻辑 430
19.5.6 生成应用程序 431
第20章 基础控件介绍 432
20.1 文本框 432
20.1.1 实战演练——实现用户登录界面 432
20.1.2 实战演练——限制输入文本的长度 433
20.2 文本视图 434
20.2.1 实战演练——拖动输入的文本 434
20.2.2 实战演练——关闭虚拟键盘的输入动作 435
20.3 标签 436
20.3.1 实战演练——使用标签显示一段文本 436
20.3.2 实战演练——复制标签中的文本 437
20.4 按钮 439
20.4.1 实战演练——自定义按钮的图案 440
20.4.2 实战演练——实现丰富多彩的控制按钮 442
20.5 滑块控件 443
20.5.1 实战演练——实现自动显示刻度的滑动条 443
20.5.2 实战演练——实现带刻度的滑动条 446
20.6 实战演练——设置指定样式的步进控件 447
20.7 图像视图控件 451
20.7.1 实战演练——实现图片浏览器 452
20.7.2 实战演练——实现幻灯片播放器效果 454
20.8 开关控件 455
20.8.1 实战演练——改变开关控件的文本和颜色 455
20.8.2 实战演练——创建并使用开关控件 457
20.9 分段控件 458
20.9.1 实战演练——分段控件的使用 458
20.9.2 实战演练——使用分段控件控制背景颜色 460
20.10 工具栏 461
20.10.1 实战演练——自定义工具栏控件的颜色和样式 461
20.10.2 实战演练——自定义工具栏 465
20.11 选择器视图 466
20.11.1 实战演练——实现两个选择器视图控件间的数据依赖 466
20.11.2 实战演练——实现单列选择器 468
20.12 日期选择控件 470
20.12.1 实战演练——使用日期选择器自动选择时间 470
20.12.2 实战演练——在屏幕中显示日期选择器 471
第21章 Web视图控件、可滚动视图控件和翻页控件 473
21.1 Web视图 473
21.1.1 实战演练——在Web视图控件中调用JavaScript脚本 473
21.1.2 实战演练——实现一个迷你浏览器 475
21.2 可滚动的视图 477
21.2.1 实战演练——可滚动视图控件的使用 477
21.2.2 实战演练——通过滚动屏幕的方式浏览信息 478
21.3 翻页控件 480
21.3.1 翻页控件基础 480
21.3.2 实战演练——自定义翻页控件的的外观样式 481
第22章 提醒、操作表和表视图 483
22.1 提醒视图 483
22.1.1 实战演练——自定义提醒控件的外观 483
22.1.2 实战演练——实现带输入框的提示框 486
22.2 操作表 488
22.2.1 实战演练——使用操作表控件定制按钮面板 488
22.2.2 实战演练——实现图片选择器 489
22.3 使用表视图 491
22.3.1 实战演练——拆分表视图 491
22.3.2 实战演练——实现图文样式联系人列表效果 493
第23章 活动指示器、进度条和检索控件 495
23.1 活动指示器 495
23.1.1 实战演练——实现不同外观的活动指示器 495
23.1.2 实战演练——实现环形进度条效果 496
23.2 进度条 498
23.2.1 实战演练——自定义外观样式的进度条 498
23.2.2 实战演练——实现多个具有动态条纹背景的进度条 501
23.3 检索条 504
23.3.1 实战演练——使用检索控件快速搜索信息 504
23.3.2 实战演练——使用UISearchDisplayController实现搜索功能 507
第24章 UIView和视图控制器详解 510
24.1 UIView基础 510
24.1.1 UIView的结构 510
24.1.2 视图架构 512
24.1.3 实战演练——给任意UIView视图的4条边框加上阴影 513
24.2 实战演练——使用导航控制器手动旋转屏幕 515
24.3 使用UINavigationController 517
24.3.1 UINavigationController详解 517
24.3.2 实战演练——实现界面导航条功能 518
24.4 选项卡栏控制器 521
24.4.1 实战演练——使用动态单元格定制表格行 521
24.4.2 实战演练——使用Segue实现过渡效果 523
第25章 UICollectionView和UIVisualEffectView控件 525
25.1 UICollectionView控件详解 525
25.1.1 UICollectionView的构成 525
25.1.2 实现简单的UICollectionView 526
25.1.3 自定义UICollectionViewLayout 529
25.1.4 实战演练——使用UICollectionView控件实现网格效果 529
25.2 UIVisualEffectView控件详解 532
25.2.1 UIVisualEffectView基础 532
25.2.2 使用VisualEffectView控件实现模糊特效 534
25.2.3 使用VisualEffectView实现Vibrancy效果 534
25.2.4 实战演练——在屏幕中实现模糊效果 536
第六篇 典型应用
第26章 图形、图像、图层和动画 540
26.1 图形处理 540
26.1.1 实战演练——在屏幕中绘制三角形 540
26.1.2 实战演练——绘制几何图形 542
26.2 图像处理 543
26.2.1 实战演练——在屏幕中绘制图像 544
26.2.2 实战演练——实现对图片的旋转和缩放 545
26.3 图层 545
26.3.1 视图和图层 546
26.3.2 实战演练——实现图片、文字及其翻转效果 546
26.4 实现动画 547
26.4.1 实战演练——使用动画样式显示电量使用情况 547
26.4.2 实战演练——使用属性动画 550
第27章 多媒体应用 553
27.1 访问声音服务 553
27.1.1 声音服务基础 553
27.1.2 实战演练——播放声音文件 554
27.2 提醒和振动 557
27.2.1 播放提醒音 558
27.2.2 实战演练——使用iOS的提醒功能 558
27.3 Media Player框架 566
27.3.1 Media Player框架中的类 567
27.3.2 实战演练——使用Media Player播放视频 567
27.4 AV Foundation框架 570
27.4.1 准备工作 571
27.4.2 实战演练——使用AV Foundation框架播放视频 571
27.5 图像选择器 574
27.5.1 使用图像选择器 574
27.5.2 实战演练——获取图片并缩放 575
第28章 定位处理 580
28.1 Core Location框架 580
28.1.1 Core Location基础 580
28.1.2 使用流程 580
28.2 获取位置 582
28.2.1 位置管理器委托 583
28.2.2 获取航向 584
28.3 地图功能 585
28.3.1 Map Kit基础 585
28.3.2 为地图添加标注 586
28.4 实战演练——定位当前的位置信息 587
第29章 触摸、手势识别和Force Touch 590
29.1 多点触摸和手势识别基础 590
29.2 触摸处理 590
29.2.1 触摸事件和视图 591
29.2.2 iOS中的手势操作 595
29.2.3 实战演练——触摸的方式移动视图 596
29.3 手势处理 597
29.4 Force Touch技术 602
29.4.1 Force Touch介绍 602
29.4.2 Force Touch API介绍 603
29.4.3 实战演练——使用Force Touch 604
第30章 Touch ID详解 607
30.1 初步认识Touch ID 607
30.2 开发Touch ID应用程序 609
30.2.1 Touch ID的官方资料 609
30.2.2 实战演练——Touch ID认证综合应用 609
第31章 游戏开发 616
31.1 Sprite Kit框架基础 616
31.1.1 Sprite Kit的优点和缺点 616
31.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的选择 616
31.2 实战演练——开发一个Sprite Kit游戏程序 617
第七篇 综合实战
第32章 房屋出租管理系统的开发 628
32.1 系统功能介绍 628
32.2 具体实现 628
32.2.1 实现接口文件 628
32.2.2 实现系统主界面 631
32.2.3 实现用户登录界面 633
评论
还没有评论。