iOS开发-从零基础到精通

本书特色

[

本书适合 iOS 开发零基础的读者阅读。全书包含六大部分,共24章,涵盖了针对 iOS 开发入门所需要掌握的核
心内容,同时紧扣 iOS 开发的*发展趋势,以 Objective-C 语言为基础,并引入了 Swift 语言以及 React Native 的介
绍。通过本书的系统学习,能够满足一般软件公司对 iOS 开发工程师的岗位要求。
*部分:Objective-C 语言基础。针对初学者介绍iOS开发使用*广泛、成熟度*的 Objective-C 语言,简单扼
要地介绍了在实际开发中*常使用的语法内容。第二部分:iOS 开发入门。基于UIKit框架,介绍了iOS开发中需要优
先掌握的基础类,包括基础 UI 控件、高级 UI 控件、控制器、手势等。第三部分:iOS 开发进阶。着重介绍多线程、
网络、存储、绘图、设计模式、设备、地图、推送、证书以及应用发布等进阶技术。第四部分:常用框架以及辅助工
具介绍。介绍在实际开发中*常使用的辅助开发工具以及框架。第五部分:Swift 语言基础。以 Swift 3.0 为基础,介
绍 Swift 语言的基本使用以及语法知识。第六部分:React Native 基础。重点介绍了 React Native 的环境部署、基本概
念以及常用框架的使用方法等内容。
本书适合 iOS 开发新手、iOS 程序员使用,也可以作为相关培训机构和大专院校教学用书。

]

内容简介

[

本书面向学习iOS开发的零基础读者。本书从实际开发的角度,提炼出所需要的iOS核心知识,让读者在短时间内有的放矢地掌握iOS开发的核心技能。为了提升读者的学习效率,本书配套提供由作者亲自录制的教学视频,针对每个章节的核心内容进行讲解,方便读者领会并掌握各个知识点。本书共包括5个部分,涵盖了开发语言、iOS专业知识、常用工具等各个方面。本书的内容是作者多年来从事iOS开发的经验提炼与总结,是一本既全面立体,又难度适中,且紧扣实践的书籍。

]

目录

第1部分Objective-C语言基础
第 1 章环境搭建
3
1.1 Xcode 简介 3
1.2 创建 App 应用 3
1.2.1 下载安装 Xcode 3
1.2.2 使用 Xcode 创建 App .4
1.2.3 Xcode 开发界面介绍 5
1.3 程序调试 .6
1.3.1 App 运行状态监控 6
1.3.2 UI 界面分析 6
1.3.3 断点调试 .7
1.4 Xcode 常用快捷键 8
1.5 常用插件 .9
1.5.1 苹果封锁第三方插件的原因 .9
1.5.2 源码编辑器扩展 .9
1.6 快捷代码段 .10
1.6.1 如何创建代码段 .10
1.6.2 常用代码段 .11
第 2 章数据类型与表达式
13
2.1 数据类型与常量 .13
2.1.1 基本数据类型 .13
2.1.2 限定词 .15
2.1.3 id 与 instancetype 17
2.2 算术表达式 .18
2.2.1 基本运算符 .18
2.2.2 数据类型转换 .20
2.3 循环结构 .22
2.3.1 for 循环 22
2.3.2 for-in 循环 .24
2.3.3 while 循环 .26


iOS开发:从零基础到精通
6
2.3.4 break 与 continue 28
2.4 选择结构 .29
2.4.1 if 语句 29
2.4.2 switch 语句 32
2.4.3 条件运算符 / 三目运算符 .35
2.5 typedef 语句 36
第 3 章类、对象与方法
38
3.1 类 .38
3.1.1 类的定义 .38
3.1.2 类的继承 .40
3.2 属性 .42
3.2.1 属性的定义 .42
3.2.2 公有属性与私有属性 44
3.2.3 属性关键字 .45
3.3 方法 .48
3.3.1 方法的定义 .48
3.3.2 方法的调用 .49
3.3.3 方法的重写 .52
3.4 对象 .54
3.4.1 创建对象 .54
3.4.2 对象操作 .57
3.5 变量 .60
3.5.1 局部变量 .60
3.5.2 全局变量 .61
3.5.3 静态变量 .64
3.5.4 const 关键字 .66
第 4 章Foundation 框架
. 69
4.1 Foundation 框架简介 .69
4.2 字符串类 .69
4.2.1 不可变字符串 NSString 69
4.2.2 可变字符串 NSMutableString
.74
4.3 数组类 .76
4.3.1 不可变数组 NSArray .76
4.3.2 可变数组 NSMutableArray
.79
4.4 字典类 .81
4.4.1 不可变字典 NSDictionary
.81
4.4.2 可变字典
NSMutableDictionary 84
4.5 NSNumber 类 86
7
目录4.6 NSDate 类 .88
4.7 NSFileManager 类 92
4.7.1 文件操作 .92
4.7.2 目录操作 .96
4.7.3 枚举目录中的内容 98
4.7.4 文件的读取与写入 100
4.8 NSURL 类 .102
4.9 NSBundle 类 .103
第 5 章Objective-C 语言特性
. 107
5.1 代码块 .107
5.1.1 Block 简介 .107
5.1.2 Block 的参数与返回值 109
5.1.3 操作 Block 外部的变量 . 112
5.1.4 Block 回调 . 114
5.2 分类 . 116
5.3 协议 . 118
5.3.1 协议简介 . 118
5.3.2 代理 . 119
5.4 KVC .120
5.4.1 使用 KVC 赋值取值 120
5.4.2 字典转模型 122
5.4.3 修改 readonly 的属性以及私有属性 1235.5 KVO 125
第 6 章Objective-C 进阶
128
6.1 对象复制 .128
6.1.1 浅复制与深复制 128
6.1.2 可变对象复制与不可变对象复制 129
6.1.3 自定义对象复制 135
6.2 内存管理 .137
6.3 预编译指令 .139
6.3.1 宏定义 .139
6.3.2 #include、#import 与 @class 142
6.3.3 条件编译 .143
6.4 NSLog() 函数 145
6.4.1 NSLog() 函数基本使用 .145
6.4.2 定制输入日志的格式 146
6.5 结构 .148
6.5.1 结构的定义与基本使用 148
iOS开发:从零基础到精通
8
6.5.2 结构的嵌套 150
第2部分iOS开发基础
第 7 章基础 UI 控件
. 155
7.1 UIKit 框架 .155
7.2 视图 UIView .156
7.2.1 UIView 简介 .156
7.2.2 视图 UIView 的外观 159
7.2.3 视图 UIView 的形变 162
7.2.4 视图 UIView 的层次关系 163
7.2.5 视图 UIView 的动画 166
7.2.6 响应用户交互事件 167
7.2.7 内容模式 contentMode 170
7.2.8 图片拉伸 .172
7.2.9 使用代码创建自定义 UIView .1757.2.10 使用 XIB 创建自定义 UIView
177
7.2.11 控件改变坐标系(convertRect:) 180
7.3 图片控件 UIImageView 181
7.3.1 基本使用 .181
7.3.2 常用操作 .183
7.3.3 帧动画功能 185
7.4 按钮控件 UIButton .186
7.4.1 基本使用 .186
7.4.2 按钮的创建 188
7.4.3 调整图标与标题的位置 190
7.5 文本控件 UILabel .192
7.5.1 UILabel 简介 192
7.5.2 常用的 UILabel 使用场景 .194
7.6 提示框控件 .195
7.7 文本输入框 UITextField 1987.7.1 UITextField 的基本属性 198
7.7.2 UITextField 的代理方法简介 201
7.7.3 UITextField 的代理方法实例之键盘回收
203
7.7.4 UITextField 的代理方法实例之字数限制
205
第 8 章高级 UI 控件
. 207
8.1 滚动视图 UIScrollView
.207
8.1.1 UIScrollView 基本使用 .207
8.1.2 UIScrollView 常用代理方法的实现
.209
9
目录8.1.3 视图的缩放功能 212
8.2 表视图 UITableView 214
8.2.1 UITableView 基本介绍 214
8.2.2 UITableView 的数据源方法 217
8.2.3 了解单元格 UITableViewCell
.219
8.2.4 UITableView 创建示例 220
8.2.5 UITableView 代理方法之点击单元格
222
8.2.6 UITableView 代理方法之编辑单元格
224
8.2.7 UITableViewCell 性能优化 .227
8.2.8 分段 Section .228
8.2.9 分段 Section 实现示例 231
8.2.10 自定义 Cell .235
8.2.11 Cell 高度的设置 .238
8.2.12 动态调整 Cell 高度(self-sizing) .238
8.2.13 动态调整 Cell 高度(代码)
240
8.2.14 UITableView FDTemplateLayoutCell 计算 Cell 高度 .244
8.2.15 改变 Cell 位置 247
8.2.16 UITableView 的 Header 和 Footer .2478.2.17 去除多余的单元格分割线 248
8.3 集合视图 UICollectionView
249
8.3.1 UICollectionView 简介 249
8.3.2 UICollectionView 数据源协议
DataSource 252
8.3.3 *简单的集合视图实现 253
8.3.4 UICollectionView 代理协议方法简介 255
8.3.5 UICollectionView 代理方法实例 256
8.3.6 UICollectionViewFlowLayout 简介 257
8.3.7 UICollectionViewFlowLayout 使用实例 259
8.3.8 UICollectionViewDelegateFlowLayout 类的代理方法实现 262
8.3.9 自定义 Cell .265
8.4 手势
UIGestureRecognizer 267
8.4.1 UIGestureRecognizer 简介 267
8.4.2 点击手势
UITapGestureRecognizer 269
8.4.3 捏合与旋转手势
UIPinchGestureRecognizer .270
8.4.4 滑动手势
UISwipeGestureRecognizer 273
8.4.5 拖动手势
UIPanGestureRecognizer 275
8.4.6 长按手势
UILongPressGestureRecognizer276
第 9 章控制器
278
9.1 控制器 UIViewController
278
9.1.1 控制器简介以及创建控制器 278
iOS开发:从零基础到精通
10
9.1.2 使用 XIB 以及 Storyboard
创建控制器 279
9.1.3 控制器的生命周期 283
9.1.4 使用 Storyboard 切换控制器 285
9.1.5 使用代码切换控制器 287
9.1.6 控制器嵌套 288
9.2 导航控制器
UINavigationController .291
9.2.1 导航控制器简介 291
9.2.2 控制器跳转 295
9.2.3 子控制器的管理 295
9.2.4 UINavigationBar 296
9.2.5 barStyle 属性 297
9.2.6 barTintColor 与 tintColor
.298
9.2.7 导航栏设置背景图片 299
9.2.8 UINavigationItem .300
9.2.9 UINavigationItem 定制示例 302
9.2.10 UINavigationItem 显示原始图片样式 304
9.2.11 UINavigationController 的代理方法 .304
9.2.12 顺传数据 .305
9.2.13 使用代理逆传数据 307
9.2.14 使用通知逆传数据 309
9.2.15 使 Block 逆传数据 .310
9.2.16 工具栏 toolBar . 311
9.3 UITabBarController .313
9.3.1 UITabBarController 的常用属性和方法 .3139.3.2 UITabBar 的常用属性和方法 .3149.3.3 UITabBarItem 的常用属性和方法 315
9.3.4 微信 TabBar 实现 .316
9.3.5 UITabBarController 的代理协议 .318
9.4 UIWindow、UIView 与
UIViewController 关系 .319
9.4.1 概念简介 .319
9.4.2 关系描述 .320
第 10 章其他 UI 控件
. 322
10.1 WKWebView .322
10.1.1 WKWebView 简介 .322
10.1.2 WKWebView 的基本使用——加载网页
.324
10.1.3 网页浏览控制 325
10.1.4 加载本地文件 328
10.1.5 WKWebView 代理协议之
WKNavigationDelegate .330
10.2 UITextView .330
11
目录10.2.1 UITextView 的基本使用 330
10.2.2 UITextView 的代理方法 332
10.3 UIPageControl .333
10.3.1 UIPageControl 介绍 .333
10.3.2 UIPageControl 实际应用 .334
10.4 UIPickerView 338
10.4.1 UIPickerView 简介 338
10.4.2 UIPickerView 的基本使用 340
10.4.3 相互依赖的多列选择器 342
10.5 UISilder .345
10.5.1 UISlider 基本介绍 .345
10.5.2 UISlider 实例 .347
10.6 UIDatePicker .349
10.6.1 UIDatePicker 基本介绍 .349
10.6.2 UIDatePicker 基本使用 .349
10.7 UISegmentedControl 351
10.7.1 UISegmentedControl 简介 .351
10.7.2 UISegmentedControl 实例 .352
第3部分iOS开发进阶
第 11 章多线程
359
11.1 线程基础知识 .359
11.2 GCD .362
11.2.1 GCD 基本概念介绍 .362
11.2.2 队列与任务组合 363
11.2.3 线程间通信 369
11.2.4 队列组 dispatch group
371
11.2.5 延迟执行操作 373
11.3 NSOperation 374
11.3.1 NSOperation 基本使用 374
11.3.2 线程间通信 379
11.3.3 任务间的执行依赖 380
第 12 章网络
. 382
12.1 网络开发基本概念介绍 382
12.2 常用网络协议之 HTTP .383
12.3 网络请求之 GET、POST 请求 384
12.4 AFNetworking 框架介绍 .385
12.5 聚合数据 API 简介 387
iOS开发:从零基础到精通
12
12.6 GET 请求与 POST 请求使用示例 .389
12.7 JSON 和 XML 简单介绍 .391
第 13 章数据持久化
. 394
13.1 沙盒 .394
13.1.1 沙盒基础 .394
13.1.2 在 Mac 上查看沙盒目录 .396
13.2 Plist 文件 .397
13.2.1 Plist 简介 .397
13.2.2 Plist 文件的读取 399
13.2.3 Plist 文件的写入 400
13.2.4 操作实例 .402
13.3 偏好设置 NSUserDefaults
.406
13.3.1 NSUserDefaults 简介 .406
13.3.2 读写示例 .407
13.4 归档 .409
13.4.1 基本使用 .409
13.4.2 单个对象归档 / 解档 .410
13.4.3 自定义对象归档 / 解档 .412
13.4.4 归档多个自定义对象 416
13.4.5 子类对象的归档 419
13.4.6 归档多个不同类型的对象 422
13.5 SQLite .424
13.5.1 数据库的操作 424
13.5.2 表的操作 .427
13.5.3 数据记录的操作 430
13.6 FMDB 433
13.6.1 基本介绍 .433
13.6.2 更新操作与查询操作 436
13.6.3 线程安全 .438
13.7 Core Data .439
13.7.1 概念简介 .439
13.7.2 使用示例 .440
13.8 Realm .445
13.8.1 Realm 基本介绍 .445
13.8.2 Realm 的安装 .449
13.8.3 常用属性与方法 451
13.8.4 Realm 使用示例 .453
13
目录第 14 章绘图和动画
. 457
14.1 核心绘画 .457
14.1.1 核心绘画的基本概念 457
14.1.2 贝塞尔路径 458
14.1.3 绘图方法和步骤 460
14.1.4 常见图形的绘制方法 461
14.2 UIImage 绘图应用 .464
14.2.1 绘制图片 .464
14.2.2 添加水印 .467
14.2.3 裁剪圆形图片 470
14.2.4 截屏 .473
14.3 CALayer 474
14.3.1 CALayer 简介 474
14.3.2 iOS 开发中的坐标系 .477
14.3.3 动画属性 .481
14.4 核心动画 .482
14.4.1 核心动画简介 482
14.4.2 动画的实现步骤 484
14.4.3 CAPropertyAnimiation 属性动画 485
14.4.4 CABasicAnimiation 基本动画 .486
14.4.5 CAKeyframeAnimation 关键帧动画 .487
14.4.6 CASpringAnimation 弹簧动画 489
14.4.7 CAAnimationGroup 动画组 490
14.4.8 CATransition 转场动画 492
第 15 章设计模式
495
15.1 iOS 下的 MVC 设计模式 495
15.2 单例模式 .497
15.3 iOS 下的 MVVM 设计模式 499
第 16 章自动布局
502
16.1 自动布局简介 .502
16.2 Masonry .505
第 17 章设备调用
511
17.1 UIDevice 类 511
17.1.1 获取设备基本信息 511
17.1.2 获取电池信息 512
17.1.3 接近传感器 514
iOS开发:从零基础到精通
14
17.1.4 方向传感器 515
17.2 位置应用 .517
17.2.1 CoreLocation 框架简介 .517
17.2.2 CoreLocation 框架的基本使用 .519
17.2.3 地理信息编码简介 522
17.2.4 CLGeocoder 应用案例 1 523
17.2.5 CLGeocoder 应用案例 2 526
17.3 地图应用 .528
17.3.1 MKMapView 简介 .528
17.3.2 MKMapView 的基本使用 .530
17.3.3 简易地图标注 531
17.3.4 简易地图标注示例 533
17.3.5 复杂地图标注 534
17.3.6 复杂地图标注示例 535
17.4 相机与相册 .537
17.4.1 UIImagePickerController 简介 537
17.4.2 UIImagePickerController 的使用 538
17.5 CoreMotion 框架 540
17.5.1 CoreMotion 基本介绍 540
17.5.2 获取运动传感器的裸数据 543
17.5.3 CMDeviceMotion .546
17.6 系统应用调用 .548
17.6.1 拨打电话功能 548
17.6.2 发送短信功能 550
17.6.3 发送邮件功能 552
第 18 章证书管理与应用发布
555
18.1 证书管理 .555
18.1.1 iOS 开发证书(调试证书)管理 .555
18.1.2 iOS 发布证书创建详解 .565
18.2 推送证书管理 .574
18.2.1 推送调试证书 574
18.2.2 推送生产证书 577
18.3 App Store 应用发布 .581
18.3.1 App Store 应用发布详解 .581
18.3.2 App 被拒绝上架的原因解析 .590
第 19 章消息推送
593
19.1 远程消息推送 .593
19.1.1 极光(JPush)消息推送集成 .593
15
目录19.1.2 获取推送消息内容 596
19.1.3 打开指定界面(自定义消息内容) 597
19.1.4 管理 App 的 Badge(本地方式) 599
19.1.5 管理 App 的 Badge(远程服务器方式) 60019.1.6 更改推送消息提示音 602
19.2 本地消息推送(基于 iOS10 UserNotifications
框架)
604
19.2.1 UNNotificationRequest 类 .604
19.2.2 UNNotificationContent 类 605
19.2.3 UNNotificationTrigger 类.607
19.2.4 UNUserNotificationCenterDelegate 代理协议 609
19.2.5 示例代码 .610
第 20 章其他高级知识点
613
20.1 App 的生命周期 .613
20.2 使用 AVFoundation 框架实现扫描二维码
.618
第4部分常用第三方框架与工具第 21 章常用第三方框架介绍
623
21.1 CocoaPods .623
21.1.1 CocoaPods 的安装 .623
21.1.2 使用 CocoaPods 安装 SDK .626
21.2 高德地图 .629
21.2.1 高德地图简介 629
21.2.2 高德地图 SDK 的安装 630
21.2.3 地图 SDK 简介 632
21.2.4 绘制地图标注 634
21.2.5 定位 SDK .636
21.3 SDWebImage .637
21.4 免费短信验证码 .639
21.5 MBProgressHUD 643
21.5.1 MBProgressHUD 简介 .643
21.5.2 MBProgressHUD 基本使用 .645
21.6 YYModel .649
21.6.1 YYModel 简介 .649
21.6.2 YYModel 使用案例 .650
第 22 章常用开发工具介绍
652
22.1 Reveal——AppUI 界面分析 .652
iOS开发:从零基础到精通
16
22.1.1 Reveal 使用简介 652
22.1.2 分析任意 iOS 应用的 UI 界面 655
22.2 Charles——网络抓包工具 657
22.2.1 抓取 HTTP 请求(基础) 657
22.2.2 抓取 HTTPS 请求(高级) 659
22.3 GitHub .664
22.3.1 GitHub 简介 .664
22.3.2 GitHub Desktop 桌面工具的安装 .664
22.3.3 创建仓库 .667
22.3.4 版本控制 .670
22.3.5 分支 branch 操作 .676
22.3.6 冲突处理 .678
22.3.7 团队合作 .681
第5部分Swift语言基础
第 23 章Swift 语言基础
689
23.1 Swift 简介 .689
23.2 常量和变量 .691
23.3 基本运算符 .693
23.4 字符串和字符 .694
23.5 集合类型 .700
23.6 流程控制 .707
23.6.1 循环语句 .707
23.6.2 条件语句 .710
23.6.3 控制转移语句 712
23.7 函数基础 .715
23.8 函数类型 .718
23.9 闭包 .720
23.10 枚举 .724
23.11 类和结构体 .728
23.12 属性 .731
23.13 方法 .735
23.14 下标 .738
23.15 继承 .740
23.16 初始化 .743
23.17 析构 .749
23.18 扩展 .751
23.19 协议 .757
23.20 泛型 .760
17
目录23.21 可选链 .763
第6部分React Native基础
第 24 章React Native 基础
. 771
24.1 搭建 React Native 开发环境 .771
24.2 编写 Hello World 776
24.3 属性 Props .778
24.4 状态 State 780
24.5 样式 style 781
24.6 界面布局 .784
24.7 网络 .788
24.8 Text 组件 .791
24.9 Image 组件 794
24.10 Button 组件 .796
24.11 TouchableHighlight 组件 .799
24.12 TextInput 组件 .802
24.13 KeyboardAvoidingView 组件 805
24.14 ScrollView 组件 808
24.15 ListView 组件 . 811
24.16 Navigator 组件 815
24.17 TabBarIOS 组件 820
参考文献
824

封面

iOS开发-从零基础到精通

书名:iOS开发-从零基础到精通

作者:史昕

页数:823

定价:¥150.0

出版社:清华大学出版社

出版日期:2018-02-01

ISBN:9787302478898

PDF电子书大小:71MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注