随笔分类 -  Swift开发

摘要:这里只是把语言参考中的重点句子记录下来。 使用保留字作为标识符,需要在其前后添加反引号。例如,class 不是合法的标识符,但是可以用 `class` 。反引号不属于标识符的一部分,`x` 和 x 表示同一标识符。 闭包中如果没有明确指定参数名称,参数将被隐式命名为 $0、$1、$2 等等。这些命名 阅读全文
posted @ 2018-01-11 21:10 鳄鱼不怕牙医不怕 阅读(114) 评论(0) 推荐(0)
摘要:除了之前介绍过的基本运算符,swift 中还有许多可以对数值进行复杂运算的高级运算符。这些高级运算符包含了 C 和 OC 中已经被大家所熟知的位运算符和移位运算符。 与 C 语言中的算术运算符不同,swift 中的算术运算符默认是不会溢出的。所有溢出的行为都会被捕获并报告为错误。如果想让系统允许溢出 阅读全文
posted @ 2018-01-09 22:43 鳄鱼不怕牙医不怕 阅读(222) 评论(0) 推荐(0)
摘要:访问控制可以限定其他源文件或模块中的代码对你的代码的访问级别。这个特性可以让你隐藏代码的一些实现细节,并且可以为其他人可以访问和使用的代码提供接口。 你可以明确地给单个类型(类、结构体、枚举)设置访问级别,也可以给这些类型的属性、方法、构造器、下标等设置访问级别。协议也可以被限定在一定的范围内使用, 阅读全文
posted @ 2018-01-07 09:27 鳄鱼不怕牙医不怕 阅读(196) 评论(0) 推荐(0)
摘要:泛型代码让你能够根据自定义的需求,编写出适用于任意类型、灵活可重用的函数及类型。它能让你避免代码的重复,用一种清晰和抽象的方式来表达代码的意图。 泛型是 swift 最强大的特性之一,许多swift 标准库是通过泛型代码构建的。事实上,泛型的使用贯穿了整本语言手册,只是你可能没有发现而已。例如,sw 阅读全文
posted @ 2018-01-04 00:09 鳄鱼不怕牙医不怕 阅读(291) 评论(0) 推荐(0)
摘要:协议定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体或枚举都可以遵循协议,并为协议定义的这些要求提供具体实现。某个类型能够满足某个协议的要求,就可以说该类型遵循这个协议。 除了遵循协议的类型必须实现的要求外,还可以对协议进行扩展,通过扩展来实现一部分要求 阅读全文
posted @ 2018-01-01 22:51 鳄鱼不怕牙医不怕 阅读(243) 评论(0) 推荐(0)
摘要:扩展就是为一个已有的类、结构体、枚举类型或者协议类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即 逆向建模)。扩展和 Objective-C 的分类类似。(与 Objective-C 不同的是,Swift 的扩展没有名字。) swift 中的扩展可以: 添加计算型属性和计算型 阅读全文
posted @ 2018-01-01 07:18 鳄鱼不怕牙医不怕 阅读(561) 评论(0) 推荐(0)
摘要:枚举常被用于为特定类或结构体实现某些功能。类似的,枚举可以方便的定义工具栏或结构体,从而为某个复杂的类型所使用。为了实现这种功能,swift 允许你定义嵌套类型,可以在支持的类型中定义嵌套的枚举、类和结构体。 要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的 {} 内,而且可以根据需要 阅读全文
posted @ 2017-12-30 19:21 鳄鱼不怕牙医不怕 阅读(375) 评论(0) 推荐(0)
摘要:类型转换可以判断实例的类型,也可以将实例看做是其父类或者子类的实例。 类型转换在 swift 中使用 is 和 as 操作符实现。这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的的类型。 你也可以用它来检查一个类型是否实现了某个协议,就像在检验协议的一致性部分讲述的一样。 定义一个类层 阅读全文
posted @ 2017-12-26 07:09 鳄鱼不怕牙医不怕 阅读(145) 评论(0) 推荐(0)
摘要:错误处理(Error handling)是响应错误以及从错误中恢复的过程。Swift 提供了在运行时对可恢复错误的抛出、捕获、传递和操作的一等公民支持。 某些操作无法保证总是执行完所有代码或总是生成有用的结果。可选类型可用来表示值缺失吗,但是当某个操作失败时,最好能得知失败的原因,从而可以作出相应的 阅读全文
posted @ 2017-12-24 22:25 鳄鱼不怕牙医不怕 阅读(213) 评论(0) 推荐(0)
摘要:可选链式调用是一种可以在当前值可能为 nil 的可选值上请求和调用属性、方法及下标的方法。如果可选值有值,那么调用就会成功;如果可选值是 nil,那么调用将返回 nil。多个调用可以连接在一起形成一个调用链,如果其中任何一个节点为 nil,整个调用链都会失败,即返回 nil。 注意 swift 的可 阅读全文
posted @ 2017-12-19 07:05 鳄鱼不怕牙医不怕 阅读(238) 评论(0) 推荐(0)
摘要:swift 使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存。通常情况下,swift 内存管理机制会一直起作用,你无须自己来考虑内存的管理。ARC 会在类的实例不再被使用时,自动释放其占用的内存。 然而在少数情况下,为了能帮助你管理内存,ARC 需要更多的,代码之间关系的信息。本章描述了 阅读全文
posted @ 2017-12-15 06:06 鳄鱼不怕牙医不怕 阅读(185) 评论(0) 推荐(0)
摘要:析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用。析构器用关键字 deinit 来标示,类似于构造器要用 init 来表示。 析构过程原理 swift 会自动释放不再需要的实例以释放资源。如自动引用计数章节中所述,swift 通过自动引用计数 (ARC)处理实例的内存管理。通常当你 阅读全文
posted @ 2017-12-14 21:21 鳄鱼不怕牙医不怕 阅读(148) 评论(0) 推荐(0)
摘要:构造过程是使用类、结构体或枚举类型的实例之前的准备过程。在新实例可用前必须执行这个过程,具体操作包括设置实例中每个存储型属性的初始值和执行其他必须的设置或初始化工作。 通过定义构造器来实现构造过程,这些构造器可以看做是用来创建特定类型新实例的特殊方法。与 OC 中的构造器不同,swift 的构造器无 阅读全文
posted @ 2017-12-07 22:38 鳄鱼不怕牙医不怕 阅读(219) 评论(0) 推荐(0)
摘要:一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类)。在 swift 中,继承是区分[类] 与其它类型的一个基本特征。 在 swift 中,类可以调用和访问超类的方法,属性和下标,并且可以重写这些方法,属性和下标来优化或修改它们的行为。swift 阅读全文
posted @ 2017-12-02 21:48 鳄鱼不怕牙医不怕 阅读(159) 评论(0) 推荐(0)
摘要:下标可以定义在类、结构体和枚举中,是访问集合,列表或序列中元素的快捷方式。可以使用下标的索引,设置和获取值,而不需要再调用对应的存取方法。举例来说,用下标访问一个 Array 实例中的元素可以写作 someArray[index],访问 Dictionary 实例中的元素可以写作 someDicti 阅读全文
posted @ 2017-11-30 06:55 鳄鱼不怕牙医不怕 阅读(156) 评论(0) 推荐(0)
摘要:方法是与某些特定类型相关联的函数。类、结构体、枚举都可以定义实例方法;实例方法为给定类型的实例封装了具体的任务与功能。类、结构体、枚举也可以定义类型方法;类型方法与类型本身相关联。类型方法与 OC 中的类方法(class methods)相似。 结构体和枚举能够定义方法是 Swift 与 C/OC 阅读全文
posted @ 2017-11-29 05:50 鳄鱼不怕牙医不怕 阅读(451) 评论(0) 推荐(0)
摘要:属性将值跟特定的类、结构或枚举关联。存储属性存储常量或变量作为实例的一部分,而计算属性计算(不是存储)一个值。计算属性可以用于类、结构体和枚举,存储属性只能用于类和结构体。 存储属性和计算属性通常与特定类型的实例关联。但是,属性也可以直接作用于类型本身,这种属性称为类型属性。 另外,还可以定义属性观 阅读全文
posted @ 2017-11-27 06:40 鳄鱼不怕牙医不怕 阅读(273) 评论(0) 推荐(0)
摘要:类和结构体是人们构建代码所用的一种通用且灵活的构造体。我们可以使用完全相同的语法规则来为类和构造体定义属性(常量、变量)和添加方法,从而扩展类和构造体的功能。 与其他编程语言所不同的是,swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的事在一个单一文件中定义一个类或者结构体 阅读全文
posted @ 2017-11-26 07:38 鳄鱼不怕牙医不怕 阅读(207) 评论(0) 推荐(0)
摘要:枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值。 如果你熟悉 C 语言,你会知道在 C 语言中,枚举会为一组整型值分配相关联的名称。swift 中的枚举更加灵活,不必给每一个枚举成员提供一个值。如果给枚举成员提供了一个值(称为“原始”值),则改值的类型可以是 阅读全文
posted @ 2017-11-23 22:51 鳄鱼不怕牙医不怕 阅读(297) 评论(0) 推荐(0)
摘要:闭包是自包含的函数代码块,可以在代码中被传递和使用。swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的匿名函数比较相似。 闭包可以捕获和存储其所在上下文中任意常量和变量的引用。被称为包裹常量和变量。swift 会为你管理在捕获过程中涉及到的所有 阅读全文
posted @ 2017-11-21 22:46 鳄鱼不怕牙医不怕 阅读(213) 评论(0) 推荐(0)