iOS Swift基础专辑
文章平均质量分 91
酒茶白开水
这个作者很懒,什么都没留下…
展开
-
Swift5编程总结
这样做的好处是,在定义公共接口的时候,可以明确地选择哪些接口是需要公开的,哪些是内部使用的,避免不小心将内部使用的接口公开。可以在子类中提供这些构造器的自定义实现,当在编写一个和父类中指定构造器相匹配的子类构造器时,实际上是在重写父类的这个指定构造器。如同前面提到的默认构造器,如果希望一个 public 级别的结构体也能在其他模块中使用其默认的成员逐一构造器,依然只能自己提供一个 public 访问级别的成员逐一构造器。默认构造器的访问级别与所属类型的访问级别相同,除非类型的访问级别是 public。原创 2023-04-23 09:51:31 · 430 阅读 · 0 评论 -
Swift编程十(结构和类)
案例代码下载结构和类Swift不要求为自定义结构和类创建单独的接口和实现文件。在Swift中,在单个文件中定义结构或类,并且该类或结构的外部接口自动可供其他代码使用。比较结构和类Swift中的结构和类的共同点:定义存储值的属性定义提供功能的方法定义下标以使用下标语法提供对其值的访问定义初始化程序以设置其初始状态扩展以扩展其功能,超越默认实现符合协议以提供某种标准功能类具有...原创 2019-06-21 17:08:16 · 196 阅读 · 0 评论 -
Swift编程十一(属性)
案例代码下载属性属性将值与特定类,结构或枚举相关联。存储的属性将常量和变量值存储为实例的一部分,而计算属性则计算(而不是存储)值。计算属性由类,结构和枚举提供。存储的属性仅由类和结构提供。存储和计算属性通常与特定类型的实例相关联。但是,属性也可以与类型本身相关联。这些属性称为类型属性。此外,可以定义属性观察器以监视属性值的更改,可以使用自定义操作进行响应。可以将属性观察器添加到自定义的存储...原创 2019-06-21 17:09:50 · 193 阅读 · 0 评论 -
Swift编程十二(方法)
案例代码下载方法方法是与特定类型相关联的函数。类,结构和枚举都可以定义实例方法,这些方法封装了用于处理给定类型的实例的特定任务和功能。类,结构和枚举也可以定义类型方法,它们与类型本身相关联。类型方法类似于Objective-C中的类方法。事实是在Swift中结构和枚举可以定义方法是与C和Objective-C的主要区别。在Objective-C中,类是唯一可以定义方法的类型。在Swift中,...原创 2019-06-21 17:19:32 · 213 阅读 · 0 评论 -
Swift编程十三(下标)
案例代码下载下标类,结构和枚举可以定义下标,下标是用于访问集合,列表或序列的成员元素的快捷方式。可以使用下标按索引设置和检索值,而无需单独的设置和检索方法。例如,可以使用someArray[index]在Array实例中和使用someDictionary[key]在Dictionary实例访问元素。可以为单个类型定义多个下标,并根据传递给下标的索引值的类型选择要使用的相应下标重载。下标不限于...原创 2019-06-21 17:21:17 · 938 阅读 · 0 评论 -
Swift编程十四(继承)
案例代码下载继承类可以从另一个类继承方法,属性和其他特性。当一个类继承自另一个类时,继承类称为子类,它继承的类称为其超类。继承是一种基本行为,它将类与Swift中的其他类型区分开来。Swift中的类可以调用和访问属于其超类的方法,属性和下标,并可以提供这些方法,属性和下标的自己的重写版本,以优化或修改它们的行为。Swift通过检查覆盖定义是否具有匹配的超类定义来帮助确保覆盖是正确的。类还可...原创 2019-06-21 17:23:22 · 203 阅读 · 0 评论 -
Swift编程十六(Deinitialization)
案例代码下载Deinitialization一个类的实例被释放之前立即调用deinitializer。使用deinit关键字编写deinitializers ,类似于使用init关键字编写初始化程序的方式。Deinitializers仅适用于类类型。Deinitialization如何运作当不再需要实例时,Swift会自动释放实例,以释放资源。Swift通过处理实例通过自动引用计数(ARC...原创 2019-06-21 17:26:59 · 303 阅读 · 0 评论 -
Swift编程十七(可选链接)
案例代码下载可选链接可选链接是一个查询和调用当前可能为nil的可选项的属性,方法和下标的过程。如果optional包含值,则属性,方法或下标调用成功; 如果optional是nil,则属性,方法或下标调用返回nil。多个查询可以链接在一起,如果链中的任何链接为nil,则整个链都会正常失败。注意: Swift中的可选链接类似于Objective-C中的nil消息传递,但其方式适用于任何类型,...原创 2019-06-21 17:28:58 · 265 阅读 · 0 评论 -
Swift编程十八(错误处理)
案例代码下载错误处理错误处理是响应程序中的错误条件并从中恢复的过程。Swift为在运行时抛出,捕获,传播和操纵可恢复的错误提供了一系列的支持。某些操作无法保证始终完成执行或生成有用的输出。Optionals用于表示缺少值,但是当操作失败时,了解导致失败的原因通常很有用,这样代码就可以做出相应的响应。例如,考虑从磁盘上的文件读取和处理数据的任务。此任务可能有多种失败方式,包括指定路径中不存在...原创 2019-06-21 17:31:03 · 348 阅读 · 0 评论 -
Swift编程十九(类型转换)
案例代码下载类型转换类型转换是一种检查实例类型的方法,或者将该实例视为与其自己的类层次结构中的其他位置不同的超类或子类。Swift中的类型转换是使用is和as运算符实现的。这两个运算符提供了一种简单而富有表现力的方法来检查值的类型或将值转换为其他类型。还可以使用类型转换来检查类型是否符合协议,如检查协议一致性中所述。为类型转换定义类层次结构可以使用类型转换来检查特定类实例在类和子类的层...翻译 2019-06-21 17:32:25 · 234 阅读 · 0 评论 -
Swift编程二十(嵌套类型)
案例代码下载嵌套类型通常创建枚举以支持特定类或结构的功能。类似地,定义仅仅在更复杂类型的上下文中使用的通用类和结构会很方便。为此,Swift允许定义嵌套类型,从而在类型的定义中嵌套支持枚举,类和结构。要将类型嵌套在另一个类型中,请在其支持的类型的外括号内写入其定义。类型可以嵌套到所需的级别。嵌套类型行为下面的示例定义了一个名为BlackjackCard的结构,它对二十一点游戏中使用的扑克...翻译 2019-06-21 17:34:26 · 370 阅读 · 0 评论 -
Swift编程二十一(扩展)
案例代码下载扩展扩展为现有的类,结构,枚举或协议类型添加新功能。这包括扩展无法访问源代码的类型的能力(称为追溯建模)。扩展类似于Objective-C中的类别。(与Objective-C类别不同,Swift扩展没有名称。)Swift中的扩展可以:添加计算实例属性和计算类型属性定义实例方法和类型方法提供新的初始化程序定义下标定义并使用新的嵌套类型使现有类型遵守协议在Swift...翻译 2019-06-24 10:07:21 · 144 阅读 · 0 评论 -
Swift编程二十二(协议)
案例代码下载协议协议定义的适应特定任务或功能块的方法,属性和其他需求的方案。然后,可以通过类,结构或枚举来遵守该协议,以提供这些要求的实际实现。任何满足协议要求的类型都被认为遵守该协议。除了指定遵守的类型必须实现的要求之外,还可以扩展协议以实现符遵守的类型可以使用的一些需求或其他功能。协议语法可以使用与类,结构和枚举非常类似的方式定义协议:protocol SomeProtocol {...翻译 2019-06-24 10:09:01 · 182 阅读 · 0 评论 -
Swift编程二十三(泛型)
案例代码下载泛型泛型代码能够根据定义的要求编写可以使用任何类型的灵活,可重用的函数和类型。可以编写避免重复的代码,并以清晰,抽象的方式表达其意图。泛型是Swift最强大的功能之一,Swift标准库的大部分内容都是使用泛型代码构建的。事实上,即使你没有意识到,也一直在语言指南中使用泛型。例如,Swift Array和Dictionary类型都是通用集合。可以创建一个包含Int值的数组,或一个包...翻译 2019-06-24 10:10:54 · 293 阅读 · 0 评论 -
Swift编程九(枚举)
案例代码下载枚举枚举定义了一个通用型的一组相关的值,在代码中的以类型安全的方式使用这些值来工作。C枚举将相关名称分配给一组整数值。Swift中的枚举更灵活,并且不必为枚举的每个案例提供值。如果为每个枚举情况提供了一个值(称为原始值),则该值可以是字符串,字符或任何整数或浮点类型的值。或者,枚举情况可以指定要与每个不同的案例值一起存储的任何类型的关联值。枚举语法使用enum关键字引入枚举,...原创 2019-06-21 17:03:30 · 190 阅读 · 0 评论 -
Swift编程八(闭包)
案例代码下载闭包函数闭包可以从定义它们的上下文中捕获和存储对任何常量和变量的引用,Swift处理捕获的所有内存管理。闭包包括以下三种形式之一:全局函数是具有名称但不捕获任何值的闭包。嵌套函数是具有名称的闭包,可以从其封闭函数中捕获值。Closure表达式是一种未命名的闭包,用轻量级语法编写,可以从上下文中捕获值。Swift的闭包表达式具有干净,清晰的风格,闭包的优势包括:从上下...原创 2019-06-21 16:59:38 · 195 阅读 · 0 评论 -
Swift编程一(快速之旅)
关于SwiftSwift通过采用现代编程模式来定义大类常见的编程错误: - 变量在使用前始终初始化。 - 检查数组索引是否存在越界错误。 - 检查整数是否溢出。 - Optionals确保nil明确处理值。 - 内存自动管理。 - 错误处理允许从意外故障中受控恢复。Swift将强大的类型推理和模式匹配与现代轻量级语法相结合,允许以清晰简洁的方式表达复杂的想法。因此,代码不仅更容...翻译 2018-07-30 10:41:41 · 265 阅读 · 0 评论 -
Swift编程二(基础)
案例代码下载Swift是iOS,macOS,watchOS和tvOS应用程序开发的新编程语言。尽管如此,Swift的许多部分对在C和Objective-C中有开发经验的都很熟悉。Swift提供了自己的所有基本的C和Objective-C类型的版本,包括Int为整数,Double和Float为浮点值,Bool为布尔值,String为文本数据。Swift还提供了三种主要集合类型的强大版本Arr...原创 2018-08-14 12:44:46 · 794 阅读 · 0 评论 -
Swift编程三(基本运算符)
案例代码下载基本运算符一个运算符是一个特殊的符号,或者你使用来检查,更改或合并值的短语。例如,加法运算符(+)对两个数字相加,如:let i = 1 + 2,和AND逻辑运算符(&&)组合两个布尔值,如:&if enteredDoorCode && passedRetinaScanSwift支持大多数标准C运算符,并改进了几种消除常见编码错误的功能。赋...翻译 2019-06-19 16:45:37 · 390 阅读 · 0 评论 -
Swift编程四(字符串和字符)
案例代码下载字符串和字符字符串是一系列字符,如"hello, world"或"albatross"。Swift字符串由String类型表示。可以通过各种方式访问一个String的内容,包括作为Character值的集合。Swift String和Character类型提供了一种快速,Unicode-compliant 的方式来处理代码中的文本。字符串创建和操作的语法是轻量级和可读的,字符串语...翻译 2019-06-19 16:54:54 · 690 阅读 · 0 评论 -
Swift编程五(集合类型)
案例代码下载集合类型Swift提供三种主要的集合类型,为数组,集合和字典,用于存储集合值。数组是有序的值集合。集合是唯一值的无序集合。字典是键值关联的无序集合。Swift中的数组,集合和字典总是清楚它们可以存储的值和键的类型。这意味着您不能错误地将错误类型的值插入到集合中。这也意味着您可以对从集合中检索的值的类型充满信心。注意: Swift的数组,集合和字典类型实现为泛型集合。有关泛型...翻译 2019-06-19 16:56:35 · 427 阅读 · 0 评论 -
Swift编程二十四(不透明类型)
案例代码下载不透明的类型函数或方法返回的不透明类型会隐藏其返回值的类型信息。不是提供具体类型作为函数的返回类型,而是根据它支持的协议来描述返回值。隐藏类型信息在模块和调用模块的代码之间的边界处很有用,因为返回值的基础类型可以保持私有。与返回类型为协议类型的值不同,opaque类型保留类型标识 - 编译器可以访问类型信息,但模块的客户端不能。不透明类型解决的问题例如,假设正在编写一个绘制AS...翻译 2019-06-25 12:07:53 · 517 阅读 · 0 评论 -
Swift编程二十五(自动引用计数)
案例代码下载自动参考计数Swift使用自动引用计数(ARC)来跟踪和管理应用程序的内存使用情况。在大多数情况下,这意味着内存管理在Swift中是“正常工作”,不需要考虑内存管理。当不再需要这些实例时,ARC会自动释放类实例使用的内存。但是,在少数情况下,ARC需要有关代码部分之间关系的更多信息,以便为管理内存。本章介绍了这些情况,并说明了如何启用ARC来管理所有应用程序的内存。在Swift中...翻译 2019-06-25 12:30:42 · 198 阅读 · 0 评论 -
Swift编程二十六(内存安全)
案例代码下载记忆安全默认情况下,Swift可以防止代码中发生不安全行为。例如,Swift确保变量在使用之前进行初始化,在取消分配后不访问内存,并检查数组索引是否存在越界错误。Swift还确保对同一内存区域的多次访问不会发生冲突,因为需要修改内存中某个位置的代码才能对该内存进行独占访问。因为Swift自动管理内存,所以大多数时候根本不需要考虑访问内存。但是,了解潜在冲突可能发生的位置非常重要,...翻译 2019-06-25 12:34:44 · 234 阅读 · 0 评论 -
Swift编程二十七(访问控制)
案例代码下载访问控制访问控制限制从其他源文件和模块中的代码访问部分代码。此功能使可以隐藏代码的实现细节,并指定一个首选接口,通过该接口可以访问和使用该代码。可以为各个类型(类,结构和枚举)以及属于这些类型的属性,方法,initializers和下标分配特定的访问级别。协议可以限制在某个上下文中,全局常量,变量和函数也可以。除了提供各种级别的访问控制外,Swift还通过为典型方案提供默认访问...翻译 2019-06-25 12:37:43 · 131 阅读 · 0 评论 -
Swift编程二十八(高级运算符)
案例代码下载高级运算符除了基本运算符中描述的运算符之外,Swift还提供了几个执行更复杂值操作的高级运算符。这些包括C和Objective-C中熟悉的所有按位和位移运算符。与C中的算术运算符不同,Swift中的算术运算符默认不会溢出。溢出行为被捕获并报告为错误。要选择溢出行为,请使用Swift默认溢出的第二组算术运算符,例如溢出加法运算符(&+)。所有这些溢出运算符都以&符号开头。...翻译 2019-06-25 12:39:12 · 975 阅读 · 0 评论 -
Swift编程六(控制流)
案例代码下载控制流Swift提供了各种控制流程语句。这些包括多次执行任务的while循环; if,guard和switch基于特定条件执行不同代码分支的语句; 和如break和continue对执行流在代码中转移到另一个点的语句。Swift还提供了for- in循环,可以很容易地遍历数组,字典,范围,字符串和其它序列。Swift的switch声明比许多类C语言中的声明强大得多。案例可以匹配...翻译 2019-06-21 16:44:39 · 339 阅读 · 0 评论 -
Swift编程七(函数)
案例代码下载函数Swift中的每个函数都有一个类型,由函数的参数类型和返回类型组成。像Swift中的任何其他类型一样使用此类型,这使得将函数作为参数传递给其他函数以及从函数返回函数变得很容易。函数也可以在其他函数中编写,以在嵌套函数范围内封装有用的功能。定义和调用函数略……函数参数标签和参数名称参数标签每个函数参数都有参数标签和参数名称。调用函数时使用参数标签; 每个参数都在函数调用...原创 2019-06-21 16:52:01 · 304 阅读 · 0 评论 -
Swift3.0 语法总结
代码下载代码下载地址前言最近找工作,很多单位都需要掌握Swift这门语言,发现Swift将是大势所趋啊!自己之前也断断续续学习过一阵子,但是学以致用啊,项目开发都是用Objective-C不用就容易忘,这段时间得闲就整理出这篇文章,可以说是自己的学习回顾吧,希望对大家有用!这都是些基本的东西,没有做过多的描述。后面我会更新一些Swift较深入探讨的文章。数据类型1.基本数据类型有:整型:Int, 浮原创 2017-04-10 23:25:20 · 577 阅读 · 0 评论