图书前言

前    言

  2014年互联网和移动互联网创造了一个又一个伟大传奇,苹果市值暴增了53%,一年的时间光是股票的增幅就相当于IBM公司的市值。然后是中国的京东、阿里巴巴上市创造了中国互联网世界的神话,阿里巴巴2014年“双11”一天的营业额就达到了571亿元,其中移动互联网手机端的成交额占到了47%。这些数字显示了移动互联网时代已经来临,一个全新时代已经开启。有人预言,移动互联网会反超互联网。大大小小的IT公司,以及从事传统事业的商家纷纷开始布局移动互联网。互联网时代创造了一个个经济神话,也造就了很多时代英雄。苹果公司显然早已掌握并且预测了移动互联网的蓬勃发展,所以苹果公司也顺势推出了下一代移动开发编程语言Swift,目的是吸引越来越多的开发者进入移动互联网行业。本书的目的也是通过详细例子的讲解,让更多的开发者掌握这一全新的开发语言。

  Swift编程开发语言是苹果公司2014年在美国旧金山召开的WWDC 2014(Apple Worldwide Developers Conference,苹果全球开发者大会)上发布的一种新的开发语言。 Swift语言专门用来开发苹果桌面OSX应用程序和iOS应用程序。 

  作为现代高级编程语言,Swift借鉴了很多其他优秀高级语言的特性,比如闭包Closure、操作符重载、泛型、ARC等特性。此外,Swift语言还拥有很多新的特性,比如Playground使得编程更加有趣,更加实时地知道代码的运行效果。对于开发者来说,Swift入门者的学习难度降低了很多,代码产出率也很高;当然它最大的优点是完全兼容Objective-C,可以无缝地使用iOS开发中的Cocoa Touch类库和大量的第三方库,在项目开发中可以毫无障碍地使用Swift开发iOS或者OSX应用程序。

  在苹果公司发布了iOS8和OS X 10.10 Yosemite操作系统后。苹果官方正式欢迎开发者提交使用Swift开发的程序。目前,App Store,github已经有大量的App、开源库的提交,相信随着Swift用户群的不断壮大,会有越来越多的开发者加入到Swift开发社区中来。

  本书的目标读者

  本书面向希望为iPhone/iPad以及OSX开发应用程序的开发人员,是一本从入门到精通的开发手册。本书通过大量清晰、完善的实例,迅速引导读者进行iOS开发。

  对于Objective-C开发者来说,学习本书的内容可以快速上手开发Swift应用程序。Swift是对Objective-C的一个优雅包装,本书也在很多代码实例中做出了Swift和Objective-C的对比,方便Objective-C开发者迅速上手开发Swift程序。

  对于使用C/C++、Java、PHP、C#等其他开发语言的开发者,本书也能帮助其快速地转到Swift开发中来。

  

  本书的组织结构

  本书从Swift入门开始,由浅入深地介绍iOS App开发的步骤和流程。从基本的语法开始,然后是面向对象、高级语法和Objective-C之间相互调用,最后介绍UI App开发整个流程。

  下面概述了本书各章的内容。

  第1章:Swift语言介绍

  介绍学习Swift语言的目的和要领,从总体上介绍语言的特点和与其他语言的比较,以便从其他语言转至Swift,并对Swift有一个整体的感性认识。

  第2章:基础知识

  介绍Swift的基本常量、变量的定义声明,及定义数据类型,比如整数、浮点类型、类型的转化、元组类型以及初步的可选类型等。同时介绍基本的运算操作。

  第3章:字符串、数组、字典

  介绍Swift语言中常用的数据结构——字符串、数组和字典,使用大量实例讲解三者常用的API函数和使用方法以及注意事项。

  第4章:控制语句和函数

  介绍编程中常见的分支、循环以及函数的定义,包括if、switch、for、while、break、continue以及fallthrough等语句的使用。同时介绍函数的使用方法和Swift特有的函数标签的使用方法。

  第5章:枚举和结构体

  结构体和枚举和C语言类似,都是面向对象使用的前奏,这里介绍结构体的声明、构造和使用,同时也强调了结构体值拷贝的特性。枚举的声明、使用和C语言结构体的异同。

  第6章:类

  本章是Swift面向对象初步,介绍类的概念和定义。这里阐明了面向对象概念、类的属性和方法,以及mutating关键字,subscript下标等。本章使用大量例子和概念来讲解类的各种情况,同时对于不同于其他语言的类的特点也做了详细的分析。

  第7章:继承

  继承是任何面向对象中的一个重要特性,本章内容较多,分析了构造函数、析构函数、方便构造函数、子类、父类构造函数的调用顺序等。还介绍了析构函数调用的方法,对于类中方法的扩展等也都做了详细的讲解。

  第8章:自动引用计数

  讲解Swift需要注意的内存管理问题。阐述了自动引用计数的工作原理,介绍了弱引用、强引用,在什么情况下会出现循环引用等情况,然后也给出了例子来解决循环引用。

  第9章:可选链和类型转换

  可选链是Swift特有的语法,本章详细介绍可选链的模型定义,为什么需要可选链、可选链调用属性和方法,可选链调用subscript下标、可选链多层链接、返回值等。同时介绍了各种类型之间的相互转换,Any和AnyObject类型的转换等。

  第10章:协议

  介绍面向对象中一个重要的知识点——协议,协议是面向对象中重要数据传输的规范,也是作为代理的重要语法基础。本章介绍了协议的定义、规范和使用,以及协议的集成、协议和扩展增加方法、协议的合成、可选协议等。

  第11章:闭包和操作符重载

  介绍了闭包Closer的语法特性和闭包作为回调函数、反向传值的使用场景。介绍了Swift中的泛型定义和使用,以及高级操作符重载等高级语法特性。还介绍了Swift和Objective-C之间的语法交互和相互调用等特性。

  第12章:第一个UI项目

  介绍了在Mac下开发iOS程序的步骤,开发环境Xcode的界面布局和使用方法,从UI工程的创建、代码的编写到项目的运行,一步步详细介绍了iOS程序的创建。通过讲解,使Swift开发者有能力开始iOS开发。

  第13章:UIView视图

  主要介绍在iOS开发中最重要也是最基本的UIView,它是所有iOS控件的父类,也是学习其他控件的基础。本章涉及的内容包括UIView的创建及显示风格、视图的父子关系、动画效果的使用、iOS界面的坐标系统以及颜色的创建方式等。

  第14章:iOS中的各种控件

  本章介绍了在iOS开发中常用的控件:标签UILabel、按钮UIButton、UIImageView、UITextField等。通过本章的学习,开发者能够掌握基本的界面布局和各种控件的使用方法,为以后的开发做好准备。

  第15章:UIViewControler视图控制器

  本章讲解的视图控制器是继UIView之后又一项必须掌握的基本知识,它是iOS开发中最常用的界面管理控制器,可以说在iOS程序中所有的界面都是一个视图控制器,可见它的重要性。只有掌握视图控制器的使用,才能做好中大型iOS的APP。

  第16章:UINavigationController导航栏控制器

  本章讲解的导航栏控制器UINavigationController是iOS中的架构级的控件,是用来管理视图控制器的控件。通过导航栏控制器可以完整实现一个APP,所以导航栏控制器在整个iOS中是非常重要的内容。本章也详细介绍了导航栏NavigationBar、工具栏ToolBar以及导航项NavigationItem的各种使用方法,还讲解了页面之间的关系及各种切换方式。

  第17章:界面之间的传值

  本章介绍了页面之间的正向传值及反向传值的方法,这两种传值是在项目开发中很常用且不易掌握的知识点。在反向传值中使用了Swift基本语法中提到的协议、代理以及闭包。这两个知识点在将来的项目中会大量使用,所以也是必须掌握的知识点。

  第18章:UITabBarController标签栏控制器

  标签栏控制器UITabBarController是继导航栏控制器之后的又一个架构级控件,也是目前市场上的APP的一种主流架构方式。本章介绍了标签栏控制器的创建和各种形式的标签的创建,在项目开发中所遇到的各种情况在本章都有提及。除了标签栏控制器,本章还介绍了本地存储NSUserDefaults的使用,它是数据本地化存储中最简单的一种方式。

  第19章:UIScrollView滚动视图

  本章所介绍的滚动视图也是一个很重要的控件,可以使用它来实现如引导页这样的图片浏览,也可以用它来实现如网页一样的滚动效果。它还是表视图以及网格视图等其他视图的父类。本章详细讲解了滚动视图的相关知识,以及使用它来实现引导页的案例。

  第20章:UITableView表视图

  介绍了在iOS开发中最常用的控件——表视图(UITableView)。无论是购物类的应用、资讯类应用还是聊天类的应用,表视图都是页面架构的首选控件。还介绍了表视图的创建及数据的显示,表视图的各种代理方法的作用及使用方法。介绍了表视图的编辑模式及索引和搜索的使用方法,表视图的cell自定义以及使用xib进行cell定制的方法。

  

  编者