《iOS编程》荣获Jolt生产力大奖。第4版更新了iOS7和Xcode5的内容。全书涵盖了开发iOS应用的方方面面。从Objective-C基础知识到新增加的语言特性;从AppKit库到常见的Cocoa设计模式;从Xcode技巧到Instruments等。如果读者刚 接触iOS编程,阅读本书前两章可以快速入门。如果读者已经有iOS编程经验,阅读本书可以拾遗补缺。
前言 xiii
本书适合哪些读者 xiii
第4版有哪些更新 xiii
教学理念 xiv
如何使用本书 xv
本书是如何组织的 xv
代码风格 xvii
版式说明 xvii
开发所需的硬件与软件 xviii
第1章 第一个简单的iOS应用 1
1.1 创建Xcode项目 2
1.2 模型-视图-控制器 4
1.3 设计Quiz 5
1.4 创建视图控制器 6
1.5 创建界面 8
1.6 创建关联 14
1.7 创建模型对象 18
1.8 大功告成 21
1.7 在模拟器上运行应用 22
1.9 安装应用 23
1.9 应用图标 25
1.10 启动图片 27
第2章 Objective-C 29
2.1 对象 29
2.2 使用对象 30
2.3 编写命令行工具RandomItems 33
2.4 创建Objective-C类的子类 38
2.5 深入学习NSArray与NSMutableArray 58
2.6 异常与未知选择器 60
2.7 练习 62
2.8 初级练习:查找问题 62
2.9 中级练习:另一个初始化方法 62
2.10 高级练习:另一个类 63
2.11 关于深入学习部分 63
2.12 深入学习:如何为类命名 63
2.13 深入学习:#import和@import 64
第3章 通过ARC管理内存 65
3.1 栈 65
3.2 堆 66
3.3 指针变量与对象所有权 66
3.4 强引用与弱引用 70
3.5 属性 75
3.6 深入学习:属性合成 81
3.7 深入学习:Autorelease池与ARC历史 83
第4章 视图与视图层次结构 85
4.1 视图基础 86
4.2 视图层次结构 86
4.3 创建UIView子类 88
4.4 在drawRect:方法中自定义绘图 94
4.5 关于开发者文档 105
4.6 初级练习:绘制图像 106
4.7 深入学习:Core Graphics 106
4.8 高级练习:阴影和渐变 108
第5章 视图:重绘与UIScrollView 111
5.1 运行循环和重绘视图 112
5.2 类扩展 114
5.3 使用UIScrollView 115
第6章 视图控制器 119
6.1 创建UIViewController子类 120
6.2 另一个视图控制器 123
6.3 UITabBarController 130
6.4 视图控制器的初始化方法 134
6.5 添加本地通知 135
6.6 加载和显示视图 136
6.7 与视图控制器及其视图进行交互 138
6.8 初级练习:增加一个标签项 139
6.9 中级练习:控制逻辑 139
6.10 深入学习:键值编码 139
6.11 深入学习:Retina显示屏 140
第7章 委托与文本输入 143
7.1 文本框(UITextField) 143
7.2 委托 146
7.3 协议 148
7.4 向屏幕中添加UILabel对象 150
7.5 运动效果 152
7.6 使用调试器 153
7.7 深入学习:main()与UIApplication 157
7.8 中级练习:捏合-缩放 157
第8章 UITableView与UITableViewController 159
8.1 编写Homepwner应用 159
8.2 UITableViewController 160
8.3 UITableView数据源 164
8.4 UITableViewCell对象 170
8.5 代码片段库 175
8.6 初级练习:表格段 178
8.7 中级练习:固定行 178
8.8 高级练习:修改UITableView对象的外观 178
第9章 编辑UITableView 179
9.1 编辑模式 179
9.2 增加行 185
9.3 删除行 187
9.4 移动行 188
9.5 初级练习:更改“删除”按钮的标题 190
9.6 中级练习:禁止移动某个表格行 190
9.7 高级练习:彻底禁止移动某个表格行 190
第10章 UINavigationController 191
10.1 UINavigationController对象 192
10.2 额外的视图控制器 196
10.3 UINavigationController的导航功能 201
10.4 UINavigationBar 205
10.5 初级练习:显示数字键盘 210
10.6 中级练习:关闭数字键盘 210
10.7 高级练习:压入更多视图控制器 210
第11章 相机 211
11.1 通过UIImageView对象显示照片 212
11.2 通过UIImagePickerController拍摄照片 216
11.3 创建BNRImageStore 220
11.4 NSDictionary 222
11.5 创建并使用键 225
11.6 使用BNRImageStore 227
11.7 关闭键盘 228
11.8 初级练习:编辑照片 230
11.9 中级练习:删除照片 230
11.10 高级练习:Camera Overlay 230
11.11 深入学习:导航实现文件 230
11.12 深入学习:摄像 233
第12章 触摸事件与UIResponder 235
12.1 触摸事件 235
12.2 创建TouchTracker应用 237
12.3 实现BNRDrawView,完成绘图功能 239
12.4 处理触摸事件并创建线条对象 240
12.5 初级练习:保存与读取 245
12.6 中级练习:颜色 245
12.7 高级练习:圆圈 246
12.8 深入学习:响应对象链 246
12.9 深入学习:UIControl 247
第13章 UIGestureRecognizer与UIMenuController 249
13.1 UIGestureRecognizer子类 250
13.2 用UITapGestureRecognizer对象识别“按下”手势 250
13.3 同时添加多种触摸手势 252
13.4 UIMenuController 254
13.5 UILongPressGestureRecognizer 256
13.6 UIPanGestureRecognizer以及同时识别多个手势 257
13.7 深入学习:UIMenuController与UIResponderStandardEditActions 260
13.8 深入学习:再谈UIGestureRecognizer 261
13.9 中级练习:修正错误 262
13.10 高级练习:速度与宽度 262
13.11 高级练习:颜色 262
第14章 调试工具 263
14.1 仪表 263
14.2 Instruments 265
14.3 静态分析器 275
14.4 项目、目标和构建设置 277
第15章 自动布局入门 283
15.1 通用化Homepwner 283
15.2 自动布局系统 285
15.3 在Interface Builder中添加约束 289
15.4 调试约束问题 298
15.5 初级练习:打造完美界面 306
15.6 中级练习:通用化Quiz 307
15.7 深入学习:使用_autolayoutTrace方法调试约束问题 307
15.8 深入学习:使用多个XIB文件 308
第16章 在代码中使用自动布局 309
16.1 视觉化格式语言 310
16.2 创建约束 311
16.3 添加约束 312
16.4 固有内容大小 315
16.5 另一种添加方式 316
16.6 深入学习:NSAutoresizingMaskLayoutConstraint 318
第17章 自动转屏,UIPopoverController与模态视图控制器 321
17.1 自动转屏 321
17.2 自动转屏通告机制 324
17.3 UIPopoverController 326
17.4 更多的模态视图控制器 329
17.5 线程安全的单例 337
17.6 初级练习:为另一个类添加线程安全的单例 339
17.7 高级练习:UIPopoverController对象的外观 339
17.8 深入学习:位掩码 339
17.9 深入学习:视图控制器之间的关系 340
第18章 保存、读取与应用状态 345
18.1 固化 345
18.2 应用沙盒 348
18.3 NSKeyedArchiver与NSKeyedUnarchiver 350
18.4 应用状态与状态切换 353
18.5 通过NSData将数据写入文件 356
18.6 NSNotificationCenter和内存过低警告 358
18.7 模型-视图-控制器-存储设计模式 361
18.8 初级练习:PNG 361
18.9 深入学习:应用的状态切换 362
18.10 深入学习:文件系统的读取和写入 363
18.11 深入学习:应用程序包 366
第19章 创建UITableViewCell子类 369
19.1 创建BNRItemCell 369
19.2 处理图片 377
19.3 由UITableViewCell对象转发动作消息 380
19.4 捕获变量 385
19.5 初级练习:设置颜色 386
19.6 高级练习:缩放 387
19.7 深入练习:UICollectionView 387
第20章 动态字体 389
20.1 使用用户首选字体 390
20.2 响应用户首选字体的改变 392
20.3 修改自动布局约束 393
20.4 确定用户首选字体大小 395
20.5 修改BNRItemCell 397
第21章 Web服务与UIWebView 403
21.1 Web服务 404
21.2 UIWebView 414
21.3 认证信息 416
25.4 中级练习:加强UIWebView 418
21.5 高级练习:课程预告 418
21.6 深入学习:HTTP请求主体 419
第23章 Core Data 431
23.1 对象-关系映射 431
23.2 用Core Data重写BNRItemStore的数据保存功能 432
23.3 再谈SQL 450
23.4 Faults 451
23.5 各种存取机制的优缺点 453
23.6 初级练习:Asset的iPad界面 454
23.7 中级练习:增加BNRAssetType对象 454
23.8 高级练习:显示某种类型的BNRItem对象 454
第24章 状态恢复 455
24.1 状态恢复的工作原理 455
24.2 启用状态恢复 456
24.3 恢复标识和恢复类 457
24.4 状态恢复与应用生命周期 459
24.5 恢复视图控制器 461
24.6 编码状态数据 464
24.7 保存视图状态 465
24.8 中级练习:为另一个应用启用状态恢复 467
24.9 深入学习:设置快照 467
第25章 本地化 469
25.1 通过NSNumberFormatter实施国际化 470
25.2 资源的本地化 473
25.3 NSLocalizedString()与字符串对照表 477
25.4 初级练习:再添加一套本地化资源 480
25.5 深入学习:NSBundle在国际化过程中的作用 480
25.6 深入学习:不通过基础国际化对XIB文件实施本地化 481
第26章 NSUserDefaults 483
26.1 NSUserDefaults 483
26.2 设置束 487
第27章 控制动画 491
27.1 基础动画 491
27.2 关键帧动画 494
27.3 在动画完成后执行特定的代码 496
27.4 弹簧动画 497
27.5 中级练习:提升Quiz的用户体验 498
第28章 UIStoryboard 499
28.1 创建Storyboard文件 499
28.2 Storyboard文件中的UITableViewController 503
28.3 Segue 506
28.4 改变颜色 512
28.5 传递数据 513
28.6 Storyboards的优缺点 520
28.7 深入学习:状态恢复 521
第29章 后记 523
29.1 接下来做什么 523
29.2 结束语 524
第22章 UISplitViewController 421
22.1 在Nerdfeed中使用UISplitViewController 422
22.2 在竖排模式下显示主视图控制器 425
22.3 将Nerdfeed改为通用应用 428
索引 525
计算机图形学 内容简介 本书主要讲述计算机图形学的有关原理、软硬件环境、几何建模和图形处理的基本方法。介绍了计算机图形学的基本概念、发展和应用,计算机图形系统的...
《亚非诸国文学研究的学术历程》内容简介:本书是《中国外国文学研究的学术历程》总12卷之第12卷。本卷主要介绍亚非地区除日本、印
自从这本经典图书的第一版出版以来,网络的应用呈爆炸之势,电子商务已经成了我们生活和工作的一部分。与此同时,对我们安全和隐
《黑客(二十五周年新版)》内容简介:黑客文化和伦理的奠基之作,计算机专业人士必读。二十五周年新版,涵盖比尔·盖茨、马克·扎
Scala是一种针对JVM的通用的编程语言,用来以简明、优雅、类型安全的方式表示常见的编程模式。它无缝集成了面向对象语言和函数式
《Flutter实战指南》内容简介:本书针对零基础的读者,循序渐进地讲解如何通过Flutter构建一个完整的、跨平台的App,让读者通过边学
所有程序员都知道应该做单元测试,但为什么你们没有做呢?是因为对单元测试不够了解,还是嫌单元测试麻烦,抑或认为单元测试的投
《5GtoB如何使能千行百业》内容简介:5G与云、智能、计算、行业应用等技术相结合,将不断地打破传统行业边界,创造丰富多彩的行业应
《天下》全景凸现通信业二十年嬗变,透视移动、电信、联通、网通等电信企业的内幕,昭示“战国七雄”的市场博弈之道。一男三女,
《日语教师课堂教学与自我发展研究》内容简介:日语教育是指,面向非日语母语者的日语教育。日语教育将日语视为交流的手段。日本日
《刻小说的人》内容简介:本书是作家比目鱼书评和文学随笔的结集,涉及五十余位中外作家的作品。文章中既有对作家写作技艺的精妙分
谭浩强教授,我国著名计算机教育专家。1934年生,广东台山人。1985年清华大学自动控制系毕业。学生时代曾担任清华大学学生会主席
《黑客与画家(10万册纪念版)》内容简介:你无须改变太多,也能活出精彩一生。这是保罗给我们的心理安抚,同时他也用自己在世俗意
2009-黑客防线-(精华奉献本)(全2册)(附2张光盘) 本书特色 透视黑客技术发展焦点,把握黑客攻防技术跳动脉搏,全面收录流行黑客技术黑客编程实战大演练,黑...
《新中国金融体制变迁与金融业发展(英文版)》内容简介:本书系统梳理了新中国成立以来中国金融体系的变迁,帮助读者认识到中国金
《3ds Max&VRay室内材质表现白金手册》内容简介:3ds Max&VRay室内材质表现白金手册是“白金手册”系列教材中的一本,全书共14章。
粒计算与数据推理 本书特色 粒计算的方法理念是本书各章节贯穿的主线。第1章的讨论针对粒计算涉及的概念,强调了粒的核心地位,设定了粒的形式化框架,该框架使给出的几...
室内设计制图讲座,ISBN:9787302249481,作者:留美幸著目录 第1章室内设计新手必备基本概念1-1绘置平面配置图的准备功课1-2现
《魔兽世界编程宝典:WorldofWarcraftAddons完全参考手册》可以为以下对象提供帮助:希望学习如何修改已有插件的新手插件用户,希
HCNP路由交换实验指南 修订版 本书特色 本书基于eNSP搭建企业网络真实场景,给出大量的配置实例,将真实场景与配置实例紧密结合,使读者能够快捷、直观、深刻地...