Swift互动教程
文章平均质量分 67
Swift互动教程,手把手教你Swift4.0语言。
李发展
《神奇的Photoshop脚本自动化与插件开发》、《iOS移动开发从入门到精通》图书作者,苹果商店热门应用《互动教程》作者,互动教程网负责人。拥有近20年的IT行业工作和教学经验,曾就职于知名外企,主要负责iOS高级开发,服务过中国电信,宾利,古琦,香格里拉,杜蕾斯等行业标杆品牌。拥有丰富的实战和教学经验,授课形式不拘一格。熟悉iOS、Swift、Java、UI设计、Javascript开发等技术。
展开
-
6.10 Swift的懒加载(lazy initialization)使用解析 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261f17d0090035986bfc.html1. 本节课将为你解析懒加载的概念。顾名思义,懒加载就是用到的时候再开辟内存空间,多次使用只会加载一次。 2. 首先导入需要使用到的界面工具框架。 3. 然后创建一个类,该类将拥有一个具有懒加载特性的属性。 4. 给类添加一个字符串类型的变量。 5. 添加另一个字符...原创 2018-05-07 18:56:46 · 263 阅读 · 0 评论 -
6.9 实例的交叉引用和弱引用(weak) [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261ffe88c21c80b14c31.html1. 本节课将通过一个实例,演示内存的泄露问题以及如何修复。 2. 首先定义一个用来创建实例的类。 3. 给类添加一个属性。 4. 添加第二个属性,该属性的类型是一个自定义的类。我们将在后面的代码中实现该类。 5. 添加一个初始化方法,以对名称属性进行设置。 6. ...原创 2018-05-07 18:55:01 · 294 阅读 · 0 评论 -
6.8 实例的引用特征和Swift的内存管理 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261fd50eee2ea3037740.html1. 开发语言使用自动引用计数,跟踪并管理应用分配的内存。当实例不再被使用时,会自动释放这些类的实例所占用的内存。 2. 本节课将为你演示自动引用计数对实例引用的管理,首先定义一个用来创建实例的类。 3. 给类添加一个属性。 4. 添加一个初始化方法,用来设置属性的...原创 2018-05-07 18:54:23 · 256 阅读 · 0 评论 -
6.7 Swift的do-try-catch错误处理模式 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261ed50eee2ea303773f.html1. 本节课将为你解析异常捕捉语句,该语句主要用于对异常和错误进行监测和处理。同时通过一个食品出售的实例,演示异常捕捉语句的具体用法。 2. 首先定义一个Error类型的枚举。 3. 定义第一个枚举成员,表示没有指定的产品。 4. 定义第二个枚举成员,表示缺少钱币而...原创 2018-05-07 18:50:47 · 443 阅读 · 0 评论 -
6.6 Swift语言中的泛型编程 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261eee920a671bb5442d.html1. 本节课将为你解析泛型的使用。泛型是另外一种可以使编码更加简单、快捷的方式。你可以将泛型简单理解为:泛指所有类型。 2. 首先导入需要使用到的界面工具框架。 3. 你需要创建一个方法,它的功能是将一个整型数组,合并到另一个整型数组。 4. 通过一个循环语句,将一...原创 2018-05-07 18:50:01 · 324 阅读 · 0 评论 -
6.5 Swift中的闭包(Closure)详解 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261ed50eee2ea303773d.html1. 本节课将为你演示闭包的使用,闭包功能使编码更加简洁,符合开发语言的现代、简便明了的特点。 2. 首先定义一个函数类型的变量,它拥有两个整型参数,并返回一个整型的结果。等号下方的大括号,是用来实用一个函数功能的代码块。 3. 然后在大括号内,输入两行代码。前一行...原创 2018-05-07 18:49:20 · 369 阅读 · 0 评论 -
6.4 问号?和感叹号!的用法解析 [Swift原创教程]
1. 和别的语言不同,系统不会自动给变量设置初始值,也就是说变量不会有默认值。所以在使用变量之前需要进行初始化,否则就会出错。 2. 利用泛型定义一个Optional类型的变量,从右侧可以看出,它是空值,没有初始值。Optional其实是个枚举,里面有None和Some两种类型,用来包装原始值。 3. 定义一个可选类型的字符串变量,从右侧的结果可以看出,它的值也是空值。 4. 定义一个字符串类型的...原创 2018-05-07 18:48:35 · 1137 阅读 · 0 评论 -
6.3 使用协议(protocol)进行方法的声明 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261ed50eee2ea303773b.html1. 本节课将为你解析协议的使用方法。协议规定了用来实现某个功能所需要的方法和属性。协议能够被类、结构体等具体实现(或遵守)。 2. 协议定义了方法的蓝图,属性和其它适合特定任务或功能的要求。定义协议与定义类、结构和枚举非常相似。 3. 然后在两个大括号之间,填写协...原创 2018-05-07 18:47:18 · 271 阅读 · 0 评论 -
6.2 使用extension对方法进行扩展 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261eee920a671bb54427.html1. 本节课将为你演示针对方法的扩展。 2. 首先导入需要使用到的界面工具框架。 3. 接着定义一个指定名称的结构体。 4. 定义两个变量,并设置它们的默认值。 5. 然后对该结构体对象进行扩展。 6. 给结构体添加一个扩展方法,该方法用来计算与另一个点之间的距离。...原创 2018-05-07 18:45:56 · 280 阅读 · 0 评论 -
6.1 使用扩展(extension)扩展类型的属性 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a99261ed50eee2ea3037738.html1. 扩展就是向一个已有的类、结构体或枚举类型添加新的能力。 扩展可以对一个类型添加新的功能,但是不能重写已有的功能。 2. 我们无法对存储属性进行扩展,所以本节课将为你演示,如何对类型的计算型属性进行扩展。首先使用扩展标识符,对整型进行扩展。 3. 添加一个dou...原创 2018-05-07 18:45:21 · 442 阅读 · 0 评论 -
5.16 使用Any表示任意值类型 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad0b61607bf6ceb390.html1. AnyObject可以代表任何class类型的实例。此外还有一个Any,它可以表示任何类型,除了方法类型。本节课将为你讲解Any的使用。 2. 定义一个Any类型的数组,该数组可以装载各种类型的数据。 3. 依次往数组中添加整型、浮点类型、字符串和元组类型四种...原创 2018-05-06 13:10:43 · 719 阅读 · 0 评论 -
5.15 使用is语句检查实例的类型 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad9f54542163e2e940.html1. 在上一节课你掌握了类型的强制转换,本节课继续讲解类型的检查。类型检查是一种检查类实例的方式,并且也是让实例作为它的父类或者子类的一种方式。 2. 首先定义一个名为生物的类。 3. 然后给类添加一个名称属性。 4. 通过初始化方法,设置名称属性的值。 5. 接着...原创 2018-05-06 13:10:02 · 302 阅读 · 0 评论 -
5.14 父类在实例类型转化时的应用 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925adac502e5d51cb4e8c.html1. 本节课将为你讲解,父类在对实例的类型进行转化时的应用。 2. 首先定义一个名为生物的类。 3. 然后给类添加一个名称属性。 4. 通过初始化方法,设置名称属性的值。 5. 接着创建一个名为狗的类,并继承自生物类。 6. 然后给类添加一个主人属性。 7. 添加一...原创 2018-05-06 13:09:24 · 274 阅读 · 0 评论 -
5.13 类的继承以及方法的重写(override) [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad9f5454507417fc94.html1. 一个类可以继承另一个类的方法、属性和其它特性。当一个类继承其它类时,继承的类叫子类,被继承的类叫父类。继承是区分类和其它类型的一个重要特征。 2. 首先定义一个名为动物的类。 3. 接着给类添加一个实例方法,用来在控制台输出一条语句。 4. 定义另一个名为狗的...原创 2018-05-06 13:08:46 · 1174 阅读 · 0 评论 -
5.12 将一个类的实例作为另一个类的属性 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad9f54542163e2e937.html1. 本节课将为你演示,将一个类的实例作为另一个类的属性。 2. 首先定义一个名为动物的类。 3. 然后给类添加一个名称属性,并设置它的默认值。 4. 添加一个年龄属性,并设置它的默认值。 5. 接着定义另一个类。 6. 然后依次给类添加两个属性,并设置它们的默认值...原创 2018-05-06 13:08:09 · 1302 阅读 · 0 评论 -
5.11 类的静态方法(class func) [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad9f5454507417fc93.html1. 类的静态方法,也称为类型方法。实例方法是被类型的某个实例调用的方法,而静态方法则是被类型本身调用的方法。 2. 本节课将为你演示,如何创建静态方法。首先定义一个指定名称的类。 3. 添加一个实例方法,用来在控制台输出一条语句。 4. 添加另一个实例方法,用来计...原创 2018-05-06 13:07:29 · 1858 阅读 · 0 评论 -
5.10 给类添加下标(subscript) [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad9f54542163e2e934.html1. 下标是访问集合、列表、序列中的元素的快捷方式,结构体、枚举和类都可以定义下标。本节课将为你演示,如何给类设置下标。 2. 首先定义一个指定名称的类。 3. 然后给类添加一个名称属性,并设置它的默认值。 4. 添加一个年龄属性,并设置它的默认值。 5. 添加一个...原创 2018-05-06 13:06:22 · 680 阅读 · 0 评论 -
5.9 类析构方法(deinit)的使用 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad128fe1189bdbd57d.html1. 本节课将为你演示类的析构方法。系统会自动释放不再需要的实例,以释放各种资源,在一个类的实例被释放之前,析构函数会被调用。 2. 首先定义一个指定名称的类。 3. 然后给类添加两个属性。 4. 添加一个初始化方法,用来设置两个属性的值。 5. 在初始化方法中,设...原创 2018-05-06 13:05:32 · 584 阅读 · 0 评论 -
5.8 类属性的willSet和didSet方法解析 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925adac502e5d51cb4e89.html1. 类的属性还拥有即将设置和完成设置这两个特性,它们被用来监视属性除初始化之外的值变化。现在演示它们的使用方法。 2. 首先定义一个指定名称的类,作为游戏的玩家。 3. 然后给类添加一个名称属性,并设置它的默认值。 4. 添加另一个级别属性,并设置它的默认值。 5...原创 2018-05-06 13:04:56 · 338 阅读 · 0 评论 -
5.7 类属性的set和get方法解析 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ad9f5454507417fc90.html1. get和set关键词被称为计算属性。它的目的是在取值和赋值时,执行里面的代码。本节课将为你讲解这两个关键词的使用方法。 2. 首先定义一个指定名称的类,作为游戏玩家。 3. 然后给类添加一个名称属性,并设置它的默认值。 4. 添加另一个级别属性,并设置它的默认...原创 2018-05-06 13:04:20 · 1385 阅读 · 0 评论 -
5.6 类和结构两个类型的比较 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ac17d0090035986868.html1. 本节将类的引用特征和结构体进行比较,使你能够更清晰地明白类和结构体的区别。 2. 首先创建一个结构体。 3. 往结构体中添加两个属性。 4. 接着实例化结构体的对象,并设置它的两个属性的值。 5. 将该对象赋予一个变量,该变量也将具有和对象相同的属性,以及属性...原创 2018-05-06 13:03:43 · 270 阅读 · 0 评论 -
5.5 类的引用(reference)特征 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925acee920a671bb54049.html1. 本节课将为你演示类的引用特征。与值类型不同,引用类型在被赋予到一个变量,常量或者被传递到一个函数时,操作的并不是其拷贝,而是已存在的实例本身。 2. 请看下面的示例代码,首先创建一个类。 3. 给类添加两个属性。 4. 给类添加一个初始化方法。 5. 在初始化...原创 2018-05-06 13:03:07 · 212 阅读 · 0 评论 -
5.4 类(class)的初始化方法、属性和方法 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ac9f54540af9a289d7.html1. 和结构体相似,类也是构建代码所用的一种通用且灵活的构造体,并且可以为类定义属性和方法。 从本节开始,将为你详细讲解类的使用。 2. 类的定义是使用class关键词,其后是类的名称,首字母通常需要大写,类的具体内容在一段大括号之内。 3. 给类添加两个属性,方法...原创 2018-05-06 13:02:31 · 422 阅读 · 0 评论 -
5.3 Swift的结构(struct)类型及其下标(subscript) [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ac128fe1189bdbd578.html1. struct结构体是构建代码常用的一种通用灵活的构造体。通过为结构体定义属性和方法,可以扩展结构体的功能。本节课为你演示结构体的使用。 2. 使用struct关键词可以定义一个结构体,结构体的名称通常使用首字母大写的形式。和枚举相同的是,结构体的内容也是放在一...原创 2018-05-06 13:01:53 · 906 阅读 · 0 评论 -
5.2 给枚举类型添加方法 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ac9f54542163e2e927.html1. 不同于传统的枚举类型,你可以给枚举添加方法。本节课将讲解枚举方法的使用。 2. 使用相同的方式,定义另一个枚举类型,并设置枚举成员的类型为整型。 3. 定义第一个枚举成员,并设置该成员的默认值为2。 4. 然后依次定义另外的两个枚举成员。 5. 给枚举添加一个...原创 2018-05-06 13:01:08 · 787 阅读 · 0 评论 -
5.1 Swift的枚举(enum)类型及遍历 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925ac7565717957672a3b.html1. 本节课将讲解枚举类型的使用。枚举为一组相关的值,定义了一个共同的类型,从而可以在代码中,以类型安全的方式调用这些值。 2. 你可以用枚举关键词定义一个枚举,并且使用大括号包含整个枚举体。和其它类型一样,枚举的名称应该以一个大写字母开头。 3. 然后在枚举体之中...原创 2018-05-06 13:00:21 · 2845 阅读 · 0 评论 -
4.12 Swift那些非常实用的内部函数 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a992501a22b9d00443914f0.html1. 本节课将为你演示一些常见的内部函数,熟练掌握这些内部函数的使用,可以提高你的开发效率。 2. 系统提供了各种运算符,帮助开发者进行快速运算。 3. 同时也提供了一些定义好的函数,例如该函数用来获得参数的绝对值。 4. 接着是断言函数,当其参数的值为真时,函数被...原创 2018-05-05 16:04:34 · 268 阅读 · 0 评论 -
4.11 递归函数的使用解析 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a992500128fe1189bdbcf21.html1. 递归调用是函数嵌套调用的一种特殊情况,它也可以被简称为递归。它在调用函数的过程中,也调用了该函数的本身。 2. 首先创建一个拥有一个整型参数,和一个整型返回值的函数。 3. 递归必须要有一个满足结束的条件,所以在此判断当参数的值小于等于1时,返回1,结束函数的...原创 2018-05-05 16:03:51 · 339 阅读 · 0 评论 -
4.10 藏在函数内部的函数 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a992500ac502e5d51cb488c.html1. 在前面几节课接触到的函数,都是全局函数。其实你还可以在其它函数之中,定义一个新的函数,也就是嵌套函数。 2. 首先创建一个函数,该函数拥有一个参数,和一个函数类型的返回值。 3. 在函数的内部代码块中,创建另一个嵌套函数。嵌套函数默认对外界是隐藏的,但它仍然可...原创 2018-05-05 16:03:15 · 196 阅读 · 0 评论 -
4.9 函数可以拥有多个返回值 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a992500a22b9d00443914e9.html1. 我们可以使用一个元组类型,作为函数的返回类型,从而返回一个有多个值组成的元组,作为函数的返回值。 2. 创建一个拥有元组作为返回类型的函数。元组是指被小括号包括的,一系列使用逗号进行分隔的值的组合。 3. 依次定义三个初始值为0的变量,分别用来存储元音、辅音和...原创 2018-05-05 16:02:36 · 1686 阅读 · 0 评论 -
4.8 使用函数类型作为函数的返回类型 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a992500d50eee2ea3036b53.html1. 在前面几节课中,分别演示函数作为参数,以及函数类型的使用。本节课为你演示如何将函数,作为另一个函数的返回值。 2. 首先定义一个包含一个参数和一个返回值的函数。 3. 该函数的作用是使参数加1,并返回最终的结果。 4. 定义一个包含一个参数和一个返回值的函数。...原创 2018-05-05 16:01:49 · 679 阅读 · 0 评论 -
4.7 函数类型的解析 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9925009f5454507417f5da.html1. 每一个函数都有特定的函数类型,可以充当参数的类型和函数的返回类型。本节课将为你演示函数类型的使用方法。 2. 首先创建一个函数,它拥有两个整型参数,并且拥有一个整型的返回值。 3. 该函数用来计算两个参数的和,所以在函数的末尾,返回两个参数之和。 4. 通过函...原创 2018-05-05 16:01:12 · 202 阅读 · 0 评论 -
4.6 使用函数作为另一个函数的参数 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a992500d50eee2ea3036b52.html1. 每个函数都是有类型的,包括函数的参数类型和返回类型。因此可以像任何其它类型一样,将函数作为参数传递给其它的函数。 2. 首先定义一个函数,它拥有两个整型的参数,和一个整型的返回值。 3. 该函数用来计算两个数值的和,所以在函数的末尾,返回两个参数的和。 4. ...原创 2018-05-05 16:00:31 · 1015 阅读 · 0 评论 -
4.5 给函数的参数设置默认的取值 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a992500fe88c21c80b142f8.html1. 本节课将为你演示函数的默认值。你可以为任何参数设定默认值,如果定义了参数的默认值,则当调用函数时,就可以省略该参数的值。 2. 首先引入需要使用到的界面工具框架。 3. 将使用默认值的参数,放在参数列表的末尾,这可以确保所有调用函数的非默认参数使用正常的顺序。...原创 2018-05-05 15:59:51 · 230 阅读 · 0 评论 -
4.4 函数的输入输出inout参数解析 [Swift原创教程]
1. 本节课将为你演示输入输出参数的使用。如果需要一个函数可以修改参数的值,并且想让修改可以保持在函数调用之后,那么就可以使用输入输出参数。 2. 通过在参数类型的前方添加输入输出关键词,声明一个输入-输出类型的参数。该函数的作用是用来交换两个参数的值。 3. 将第一个参数赋值给一个临时常量。 4. 然后将第二个参数的值,传递给第一个参数。接着将临时常量的值,传递给第二个参数,从而完成两个参数的值...原创 2018-05-05 15:59:12 · 654 阅读 · 0 评论 -
4.3 创建拥有任意数量参数的函数 [Swift原创教程]
1. 本节课将为你讲解可变参数的用法 。一个作为可变参数的参数,可以接受零个或多个指定类型的值。 2. 创建可变的参数时,需要在参数类型名称的后面加上点字符(...),这样参数将作为一个浮点数组存在。 3. 判断当数组中的元素个数为0,设置函数的返回值为0。 4. 定义一个双精度的浮点类型的变量,用来存储参数之和。 5. 通过一个循环语句,累计数组中的所有元素的和。 6. 最后返回一个浮点类型的平...原创 2018-05-05 15:58:46 · 411 阅读 · 0 评论 -
4.2 函数的外部参数名 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9924fffe88c21c80b142f6.html1. 给函数的每个参数进行命名,可以很清楚的表示每个参数的意义。本节课将为你演示如何给参数命名,即设置函数的外部参数名。 2. 首先导入需要使用到的界面工具框架。 3. 创建一个包含两个参数的函数,多个参数之间使用逗号进行分隔。其中startPoint是第一个参数的...原创 2018-05-05 15:58:16 · 249 阅读 · 0 评论 -
4.1 函数func以及函数的参数和返回值 [Swift原创教程]
1. 从本节课开始讲解函数的使用。函数是执行指定任务的代码块,给定一个函数名称标识,当执行其任务时,就可以用这个标识来进行调用。 2. 使用func关键词定义一个函数,并指定函数的名称,尾部的小括号用来设置参数,大括号之内用来放置执行某项任务的代码块。 3. 在代码块中添加一行语句,用来在控制台输出一行日志。 4. 要使用一个函数的功能,只需通过它的名称进行调用即可,右侧的实时反馈区显示了函数执行...原创 2018-05-05 15:57:29 · 1686 阅读 · 0 评论 -
3.6 if和if-let判断语句的使用解析 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9924e217d00900359861b5.html1. 本节课将为你演示条件控制语句的使用。条件控制语句通过设定一个或多个条件来执行程序,在条件为真时执行指定的语句,条件为假时执行另外的语句。 2. 首先初始化一个整型变量,通过条件控制语句,设置该变量的值。 3. 创建一个if条件控制语句,该语句由一个布尔表达式,...原创 2018-05-05 09:27:11 · 681 阅读 · 0 评论 -
3.5 while和repeat-where循环语句 [Swift原创教程]
原文:http://coolketang.com/staticCoding/5a9924e2ee920a671bb5399e.html1. 开发者可以使用两种循环语句,除了已经讲解过的for-in循环,还有while循环语句,本节课将为你解析该循环语句的使用。 2. 循环语句从计算一个条件开始。如果条件为真,会重复运行一系列语句,直到条件变为假。首先初始化一个整型变量,并初始化其值为1。 3. 创...原创 2018-05-05 09:25:55 · 869 阅读 · 0 评论