第1章 iOS概述 1
1.1 iOS的起源 1
1.2 使用界面 2
1.3 iOS系统结构 2
1.4 iOS版本功能介绍 4
1.4.1 iOS 7.0介绍 4
1.4.2 iOS 8.0介绍 6
1.4.3 iOS 9.0介绍 7
第2章 开发环境和安装XCode 10
2.1 安装XCode方法1:网站下载 10
2.2 安装XCode方法2:APP Store 15
2.3 引导开发环境XCode 18
本章习题 19
第3章 第一个Objective-C程序 20
3.1 创建第一个iOS APP 20
3.2 修改程序 23
3.3 调试 25
本章习题 26
第4章 Objective-C语法 27
4.1 字符串NSString、NSLog的使用方法 27
4.2 数据类型 30
4.2.1 int 30
4.2.2 long 31
4.2.3 float 31
4.2.4 double 32
4.2.5 bool/Boolean 32
4.2.6 综合练习 33
4.3 数学计算 34
4.4 判断式 36
4.4.1 if条件判断 36
4.4.2 switch条件判断 37
4.4.3 综合练习 38
4.4.4 enum枚举 39
4.5 创建循环 41
4.5.1 for语句 41
4.5.2 goto语句 42
4.5.3 while语句 43
4.5.4 do-while语句 44
4.6 数组 45
4.6.1 Array 45
4.6.2 NSArray 47
4.6.3 NSMutableArray 48
4.6.4 NSDictionary 50
4.6.5 NSMutableDictionary 51
4.7 Class类型 52
4.7.1 创建自己的Class类型 52
4.7.2 类型函数和参数 55
4.7.3 id类型 57
4.7.4 Class类型的继承 58
4.7.5 super调用父类函数 60
4.7.6 self本身 62
4.8 权限声明 63
4.8.1 public、protected和private的使用 64
4.8.2 @property和@synthesize 66
4.9 static 68
4.9.1 static变量 68
4.9.2 static静态函数 69
4.9.3 extern 71
第5章 iOS基本组件(项目:度量衡换算APP) 73
5.1 Storyboard工具设计画面 73
5.1.1 添加组件 74
5.1.2 调整组件 74
5.1.3 新增组件变量 75
5.2 UILabel文字组件——更改文字颜色和尺寸 77
5.3 Storyboard设定组件指派事件 80
5.3.1 新增指派事件 81
5.3.2 组件的指派事件和触发事件 83
5.3.3 取消指派事件 83
5.3.4 取消组件变量 83
5.4 UIButton——按钮反应 84
5.5 UITextField——文字输入 86
5.6 UITextField——设置键盘样式 89
5.7 综合练习——公尺英里计算器APP 90
5.8 UIImageView——图片切换 92
5.9 UIButton——美食蛋糕APP 95
5.10 UITextView——多样化的文字显示 97
5.11 UISegmentedControl——设置APP后台颜色 100
5.12 UISwitch——显示口令 103
5.13 UISlider——调整图片的圆角 105
5.14 UIProgressView——显示完成进度 108
5.15 UIStepper——购买数量 110
5.16 UIDataPicker——动态输入时间 112
5.17 UIScrollView——超过画面的处理 115
5.18 UIView——组件动态产生和重叠 118
第6章 触发事件、换页与Storyboard(项目:切换画面APP) 122
6.1 触发事件1——Event 123
6.2 触发事件2——delegate 127
6.3 触发事件3——selector 130
6.4 用Storyboard来换页 132
6.5 新增类型来控制新页面 137
6.6 NavigationController 141
6.7 NavigationController的push和modal的差异以及标题设置 145
6.8 NavigationController——通过程序切换页和传递数据 148
6.9 NavigationController的显示和隐藏 151
6.10 UIBarButtonItem 153
第7章 信息视窗(项目:点菜APP) 156
7.1 UIAlertView——单一按钮信息确认 157
7.2 UIAlertView——询问信息 159
7.3 UIAlertController——没有按钮 161
7.4 UIAlertController——OK按钮 164
7.5 UIAlertController——Yes和No按钮 166
7.6 UIAlertController——使用名称和密码 168
7.7 UIActivityIndicatorView——显示读取中 171
第8章 Tab BarControllers 174
8.1 Tab Bar Controllers控制画面切换方法一 174
8.2 Tab Bar Controllers控制画面切换方法二 178
第9章 列表组件(项目:购物清单APP) 184
9.1 UITableView——使用列表功能 185
9.2 UITableView——APP直接引导列表 191
9.3 UITableView——内容设置 193
9.4 UIViewController——详细内容 195
9.5 UITableView——自定义列表样式 201
9.6 UITableView——多段内容和表头设计 205
9.7 UISsearchDisplayController——搜索内容 208
9.8 UITableView——删除数据 211
9.9 UITableView——添加数据 213
9.10 UITableView——移动数据 215
9.11 UITableView——Grouped设置页 216
第10章 引导画面和APP图标的设置与动画效果(项目:按钮选单APP) 221
10.1 修改APP的icon 221
10.2 设定启动画面——Launch Storyboard 225
10.3 设定启动画面——xcassets 226
10.4 动画移动——animateWithDuration设置动画时间 231
10.5 旋转动画——CGAffineTransformMakeRotation设置旋转角度 234
10.6 缩放动画——缩小窗口 236
10.7 缩放并旋转动画 238
10.8 混合动画效果 240
第11章 多线程 243
11.1 dispatcn_async——后台下载网络图片APP 244
11.2 NSTimer 247
11.3 delegate 251
第12章 屏幕尺寸调整和旋转(项目:iPad/iPhone版旅行APP) 254
12.1 iPhone/iPad的不同和调整 254
12.2 设计iPhone和iPad应用程序和旋转 255
12.3 Autoresizing 258
12.4 Auto Layout 263
12.5 判断iPhone和iPad设备 269
第13章 网络(项目:电子书APP) 271
13.1 UIWebView——显示网页和部落格APP 272
13.2 UIWebView——显示PDF文件和电子书APP 274
13.3 HTTPGet的样例程序——会员报到 277
13.4 HTTPPost的样例程序——会员登录APP 281
13.5 NSURLConnection——异步下载HTTP Get 283
13.6 NSURLConnection——异步下载HTTP Post 286
13.7 Hybrid网页型APP 288
13.7.1 Hybrid APP概述 288
13.7.2 Web APP、Hybrid APP和Native APP纵向对比 289
13.7.3 Hybrid APP的第三方工具 290
13.8 在iOS使用PhoneGap 293
13.9 网络连接状态 299
第14章 文件、SQLite数据库和Core Data(项目:记事本APP) 304
14.1 文件存储——文件总管APP 305
14.1.1 iOS的APP文件结构 305
14.1.2 创建目录 308
14.1.3 目录下创建文件 309
14.1.4 取得目录中的所有文件名称 310
14.1.5 改变路径 310
14.1.6 移除文件 311
14.1.7 Doc目录下文件的存储和读入 312
14.1.8 存储多种数据类型 313
14.1.9 读取多种数据类型 313
14.1.10 读取专案中的文件 314
14.1.11 读取专案中的文件 314
14.2 NSUserDefaults简易数据访问 315
14.3 KeyChain机密数据 317
14.4 SQLite数据库 323
14.4.1 SQLite数据准备 323
14.4.2 SQLite初始化 325
14.4.3 读取数据库,显示数据 327
14.4.4 新增数据 330
14.4.5 删除数据 332
14.5 CoreData 334
14.5.1 准备 334
14.5.2 设置Core Data数据库Data Model 337
14.5.3 读取和显示Core Data数据库Data model 341
14.5.4 Core Data增加数据 344
14.5.5 删除数据 346
14.5.6 数据的选择NSPredicate 348
第15章 JSON、XML和SOAP(项目:新闻阅览器APP) 352
15.1 JSON 352
15.2 XML和RSS——新闻APP 357
15.3 SOAP数据处理 362
第16章 手机功能 367
16.1 调整屏幕尺寸 368
16.2 iOS设备唯一认证码UUID 373
16.3 发简讯方法1 375
16.4 发简讯方法2 376
16.5 网页 380
16.6 邮件 381
16.7 拨号 383
16.8 简易版地图 384
16.9 iTune音乐和打开其他APP——软件市场APP 386
16.10 Youtube影片——电视影集APP 388
16.11 拍照 389
16.12 获取相簿 391
16.13 震动 393
16.14 摇一摇 394
16.15 手机水平 397
第17章 多媒体(项目:视频APP) 400
17.1 AVAudioRecorder——声音录制 400
17.2 AVAudioPlayer——音乐盒 405
17.3 MediaPlayer播放视频 408
17.4 MediaPlayer录影 411
第18章 广告 414
18.1 广告iAd后台设置 414
18.2 ADBannerView——广告iAd 417
18.3 ADInterstitialAdDelegate——全画面广告 421
第19章 手机地图GPS(项目:旅游导航地图APP) 424
19.1 GPS位置和高度 425
19.2 罗盘和指南针 429
19.3 显示地图 433
19.4 指定地图位置、尺寸和GPS显示用户的位置 437
19.5 地图上加标记点 439
19.6 自制地图标记点 441
19.7 导航 444
第20章 SpriteKit(项目:FlaPPy Bird游戏APP) 448
20.1 SpriteKit游戏 448
20.2 画面设计 452
20.3 显示主角——动画切换图片 457
20.4 后台移动 458
20.5 背景持续地移动 460
20.6 远近效果 461
20.7 水管移动 463
20.8 游戏性——显示多个水管 465
20.9 物理 467
20.10 物理对象碰撞 469
20.11 物理碰撞处理 472
20.12 跳线——物理施加外力 473
20.13 计分 475
第21章 蓝牙4.0 BLE iBeacon(项目:手机控制周边设备APP) 478
21.1 iOS显示所有的iBeacon设备 479
21.2 显示iBeacon的远近 486
21.3 iOS传送和接收数据给Arduino设备 491
第22章 测试和版本控制 500
22.1 Analyze单元测试工具 501
22.2 Profile测写工具介绍 501
22.3 Activity Monitor执行分析 503
22.4 Allocations内存泄露 505
22.5 Automation自动测试程序 507
22.6 版本控制 510
22.6.1 将专案设置和使用Git版本控制 510
22.6.2 把程序记录到版本控制 512
22.6.3 check-in程序登记到版本控制 513
22.6.4 查阅版本的差异 514
22.6.5 退回之前的版本 515
第23章 上架、实际测试和函数库 517
23.1 Apple后台设置——产生凭证密钥 517
23.2 下载安装开发证、测试认证和登记测试机器 524
23.3 在iPhone和iPad机器上做测试 533
23.4 设置APP售价和语句 535
23.5 上传APP 542
23.6 送审和上架贩售 547