编辑推荐
《iOS编程(第5版)》有两个特点:涵盖iOS应用开发必备知识:从Swift基础知识到新语言特性,从AppKit库到常见的Cocoa设计模式,从Xcode技巧到Instruments,不一而足。第二、指导读者以正确的方法解决问题:Swift的习惯约定有哪些(例如命名约定,内存管理约定),创建子类时如何处理初始化方法,Cocoa的常见设计模式有哪些,如何选择数据保存方法等。
内容简介
《iOS编程》荣获Jolt生产力大奖。第5版更新了iOS9、Xcode7、Swift的内容。《iOS编程(第5版)》涵盖了开发iOS应用的方方面面。从Swift基础知识到新增加的语言特性;从AppKit库到常见的Cocoa设计模式;从Xcode技巧到Instrumentst等。如果读者刚接触iOS编程,阅读《iOS编程(第5版)》前两章可以快速入门。如果读者已经有iOS编程经验,阅读《iOS编程(第5版)》可以拾遗补缺。
作者简介
ChristianKeur是BigNerdRanch的高级讲师和软件工程师,负责编写BigNerdRanch的“iOS新手培训课程”教材。该教材广受好评,是《iOS编程(第5版)》的原型。Christian毕业于美国佐治亚理工学院计算机科学系,目前居住在亚特兰大。
AaronHillegass是BigNerdRanch的创始人之一,曾就职于NeXT公司和Apple公司,他拥有近20年的Cocoa、iOS开发与教学经验。Aaron与他人合著了《MacOSX编程》。
精彩书评
阅读此书,转身成为iPhone/iPad程序员。
-DietrichKappe,PathfinderDevelopment公司CTO
目录
第1章第一个简单的iOS应用1
1.1创建Xcode项目2
1.2模型-视图-控制器5
1.3设计Quiz6
1.4InterfaceBuilder7
1.5创建界面8
1.6创建模型对象21
1.7编译完成的应用23
1.8应用图标24
1.9启动画面26
第2章Swift语言27
2.1Swift的数据类型27
2.2使用标准类型28
2.3可选35
2.4循环和字符串补全37
2.5枚举和Switch39
2.6查阅Apple的Swift文档40
第3章视图与视图层次结构41
3.1视图基础42
3.2视图层次结构42
3.3创建新项目44
3.4视图及Frame45
3.5自动布局系统55
3.6初级练习:更多自动布局练习64
第4章文本输入与委托65
4.1文本编辑65
4.2实现温度转换73
4.3委托76
4.3初级练习:禁止输入字母79
第5章视图控制器81
5.1视图控制器的视图82
5.2设置初始视图控制器82
5.3UITabBarController85
5.4加载以及展示视图90
5.5与视图控制器及其视图交互92
5.6中级练习:夜间模式93
5.7深入学习:高清显示93
第6章用代码实现视图95
6.1使用代码创建视图96
6.2代码实现约束97
6.3代码实现事件104
6.4初级练习:再添加一个Tab106
6.5中级练习:显示用户位置106
6.6高级练习:显示地图大头针106
6.7深入学习:NSAutoresizingMaskLayoutConstraint106
第7章本地化109
7.1国际化110
7.2本地化120
7.3初级练习:另外一种本地化126
7.4深入学习:NSBundle在国际化中扮演的角色126
7.5深入学习:导入以及导出XLIFF128
第8章控制动画129
8.1基础动画130
8.2另一个标签132
8.3动画完成135
8.4对约束作动画135
8.5时间方法139
8.6初级练习:spring动画141
8.7中级练习:LayoutGuides141
第9章UITableView与UITableViewController143
9.1编写Homepwner应用144
9.2UITableViewController145
9.3创建Item类147
9.4UITableView数据源149
9.5UITableViewCells153
9.6内容缩进158
9.7初级练习:多个分组159
9.8中级练习:固定的行160
9.9高级练习:自定义UITableView160
第10章编辑UITableView161
10.1编辑模式161
10.2添加行166
10.3删除行168
10.4移动行169
10.5显示提示窗口170
10.6设计模式173
10.7初级练习:修改删除按钮的标题174
10.8中级练习:禁止调整顺序174
10.9高级练习:真正地禁止调整顺序174
第11章创建UITableViewCell子类175
11.1创建ItemCell176
11.2添加并关联ItemCell的属性178
11.3使用ItemCell179
11.4动态计算高度180
11.5动态类型181
11.6初级练习:UITableViewCell的颜色184
第12章UIStackView185
12.1使用UIStackView186
12.2Segues194
12.3绑定内容195
12.4传递数据200
12.5初级练习:更多的UIStackView201
第13章UINavigationController203
13.1UINavigationController204
13.2使用UINavigationController导航209
13.3视图的出现和消失210
13.4隐藏键盘211
13.5UINavigationBar215
13.6初级练习:显示数字键盘220
13.7中级练习:自定义UITextField220
13.8高级练习:添加更多UIViewController220
第14章相机221
14.1通过UIImageView对象显示图片222
14.2通过UIImagePickerController拍摄照片226
14.3创建ImageStore231
14.4让UIViewController可以访问ImageStore232
14.5创建并使用键233
14.6使用ImageStore235
14.7初级练习:编辑图片236
14.8中级练习:删除图片237
14.9高级练习:CameraOverlay237
14.10深入学习:导航实现文件237
第15章保存、读取与应用状态241
15.1固化242
15.2应用沙盒245
15.3NSKeyedArchiver与NSKeyedUnarchiver248
15.4应用状态与状态切换251
15.5通过NSData将数据写入文件254
15.6错误处理257
15.7初级练习:PNG259
15.8深入学习:应用状态切换259
15.9深入学习:文件系统读/写261
15.10深入学习:应用程序包263
第16章SizeClasses265
16.1定制SizeClasses266
16.2初级练习:垂直排列UITextField和UILabel272
第17章触摸事件和UIResponder273
17.1触摸事件274
17.2创建TouchTracker应用275
17.3创建Line结构体276
17.4创建DrawView278
17.5使用DrawView画图279
17.6处理触摸事件并创建线条对象280
17.7@IBInspectable285
17.8中级练习:颜色287
17.9高级练习:圆圈287
17.10深入学习:响应对象链287
17.11深入学习:UIControl289
第18章UIGestureRecognizer与UIMenuController291
18.1UIGestureRecognizer子类292
18.2使用UITapGestureRecognizer检测点击292
18.3多个UIGestureRecognizer294
18.4UIMenuController297
18.5更多UIGestureRecognizer299
18.6深入学习UIGestureRecognizer304
18.7中级练习:神奇的线条305
18.8高级练习:速度和大小305
18.9铂金挑战:颜色305
18.10深入学习:UIMenuController与UIResponderStandardEditActions306
第19章网络服务307
19.1开始Photorama应用308
19.2创建URL309
19.3发送请求314
19.4Photo模型317
19.5JSON数据318
19.6下载并显示图片数据326
19.7主线程329
19.8初级练习:打印返回信息331
19.9深入学习:HTTP331
第20章UICollectionView333
20.1显示网格334
20.2UICollection数据源336
20.3自定义布局339
20.4创建自定义的UICollectionViewCell341
20.5下载图片数据345
20.6查看照片349
20.7中级练习:改变Item的尺寸352
20.8高级练习:自定义布局352
第21章CoreData353
21.1对象图353
21.2实体354
21.3创建CoreDataStack358
21.4更新数据361
21.5更新数据源364
21.6在硬盘上保存图片367
21.7初级练习:照片查看次数368
第22章CoreData关系369
22.1关系370
22.2在界面中添加标签372
22.3父子NSManagedObjectContext382
22.4中级练习:收藏384
第23章后记385
23.1接下来做什么385
23.2关注我们386
索引387
精彩书摘
《iOS编程(第5版)》中所有代码都是使用Swift语言编写的,前面的章节会让读者快速熟悉这门新语言。通过《iOS编程(第5版)》,读者会学到如何利用Swift语言特性来编写更好的iOS应用。我们已经爱上Swift了,相信你也会的。
其他新增的部分包括collectionview、sizeclass、AutoLayout、webservice、CoreData。
第5版使用的是Xcode7.1或更新的版本,应用在安装iOS9或更新版本的设备上运行。
除了以上这些明显的变化,作者还根据读者和学生提出的问题对《iOS编程(第5版)》进行了大量修订。可以说与前一版本相比,新版页页有改进。
前言/序言
要成为一名优秀的iOS程序员,需要攻克以下三道难题。
必须学会Swift语言。Swift是iOS推荐的开发语言。《iOS编程(第5版)》前两章会讲解必要的Swift语言知识。
必须掌握一些主要概念。其中包括委托(delegation)机制、固化(archiving)机制,以及如何正确使用视图控制器(viewcontroller)。理解这些技术需要花些时间。当读者把《iOS编程(第5版)》读到一半时,就会明白这些概念。
必须掌握框架(framework)。读者的最终目标是了解iOS的所有框架,学会如何使用框架中的每一个类和方法。但这几乎是不可能完成的任务:iOS有几百个类和上千个方法,而且随着iOS的版本升级,Apple还会不断地加入新的类和新的方法。《iOS编程(第5版)》将会介绍iOSSDK中的各个组成部分,但是不会太过深入。作者的目标是带领读者入门,使读者能够自行阅读并理解Apple的参考文档。
BigNerdRanch公司采用《iOS编程(第5版)》作为“iOS新手培训课程”的教材。这些内容经过了长期的检验,并且帮助很多人成为iOS程序员。真心希望《iOS编程(第5版)》也能给你带来帮助。