Tag:

开始进行Swift编程第9部分-基本协议,扩展和下标

在上一篇文章中,我们介绍了类型转换,安全展开可选内容和访问控件。 Swift编程第8部分开始-类型转换,安全解压缩可选项和访问控制 在上一篇文章中,我们讨论了初始化,反初始化,覆盖和引用计数。 medium.com 没什么困难,对于您中的某些人而言,也许最好不过是适度的,因为有了访问控制的概念。 这篇文章可能会使事情再次升温,但这又仅仅是因为实际的应用程序用例。 我将尽力以一种可以帮助您理解所有内容以及何时应在何处使用所涉及的主题的方式来解释事情。 我知道有些教程可以直接跳转并提供扩展,但是我不会。 扩展是利用您已经知道的内容做更多事情的基础,因此,我决定最好从协议开始。 因此,让我们深入。 好的,所以协议和扩展声音令人生畏,Apple提供的定义在您开始时并不能消除浑水。 这个定义直接来自苹果的书: 协议定义了适合特定任务或功能的方法,属性和其他要求的蓝图。 然后,该协议可以由类,结构或枚举采用,以提供这些要求的实际实现。 满足协议要求的任何类型都被称为符合该协议。 你们中有些人可能已经了解到,其他人可能仍然会挠头。 不用担心,现在,让我们暂时忘记该定义,我有一个使用棒球的指导来指导我们进行定义。 在棒球中,我们有不同的位置,例如击球手,投手,接球手,垒手,外野手,教练和裁判员。 如果您对棒球有任何了解,您就会知道团队中的每个人都有自己的角色,每个人都擅长于该角色。 我们不能只是让三垒手成为投手,或者让裁判成为外野手。 第一种情况很难,因为团队喜欢为一垒手雇用左撇子,为三垒手雇用右撇子。 另一个似乎不是一个好主意,因为两队之间的裁判是中立的。 如果每个玩家都是一堂课, 那么他们如何玩游戏就由协议定义。 让我们看看它在代码中的外观。 扩展以简单的概念而得名。 扩展实质上是将功能扩展到类,结构或协议。 关于它们的使用方式,我将引用Swift中的Foundation库。 Foundation有一个名为UITableView的类。 UITableView本身仅处理显示表视图。 但是,我们可以通过给它一个名为UITableViewDataSource的扩展来扩展其功能。 这为采用此协议的类提供了提供数据如何在表视图内部显示的上下文的能力。 上图是扩展的一个很好的例子。 通过单击“无选择”,您可以打开当前布局的树。 这使您可以通过单击树的任何部分来浏览代码,Xcode将专注于该代码。 通过使用//MARK: — Properties ,可以在属性上方创建一条水平线,同样可以使用 //MARK: Properties —在属性下方放置一条水平线。 或者,您可以在上方和下方都设置一个,但是我通常只在上方放置一个,以将其分成这样的部分。 您可以选择最有意义的选项。 有关更多信息,请查看Apple的标记文档。 好的,只是我想离开这里的提示,回到扩展。 除了将您的代码分成逻辑区域外,它们还做了其他一些事情,这也成为我成为协议狂热者的原因,并尽可能尝试使用它们。 因此,协议对于团队来说很棒,从一开始就显而易见,但是您可能会问自己,如果您是一个单独的开发人员,为什么还要使用协议? 您知道一切都会做什么,并且不介意在一年后回到您的代码以发布更新时重新学习。 特别是如果这意味着必须编写更多的代码,这对于您的应用正常运行并不重要。 还记得Fielder协议吗? 如果我告诉您不必编写协议要求,也不必单击红色的停止符号以使它在每次使用协议的情况下都实现每个方法存根,该怎么办。 那您想要协议吗? 纯粹的事实是,在上面的示例中,如果您在同一实现中使用darn编写7次6个属性和4个方法,那将是疯狂的,那就是42个属性和28个方法,更不用说每种方法所涉及的逻辑了。 对我来说听起来像是折磨。 […]

全面理解快速下标(第2部分)

因此,在本部分中,我将对带下标的示例进行更多说明。如果您错过了该部分,则为第1部分…… 介绍 : 下标只是从struct,class或enum中的列表或序列访问元素的快捷方式。 字典中的下标: 在字典中,当我们通过索引Index检索数据时。 在这种情况下,词典始终会抛出可选值。 由于该词典中不存在所需的密钥。 喜欢 : let simpleDictonaray = [“ Apple”:100,“ Orange”:130,“ Banana”:90] simpleDictonaray [“ Apple”] // 可选(100) 这个Dictionary抛出了optional(100),所以我们可以通过我们自己的下标来解决这个问题: 在这里,我们创建一个具有信息并具有下标的结构。 下标主体具有绑定临时变量newValue的值。如果info [key]具有值,则返回或返回0 正在访问: 这次, 今天的购物将不会提供可选的值。因为在其下标正文中,我们已经安全地展开了。 如果此实例没有所需的键,它将简单地返回0。 通用下标: 泛型下标与基本无异。只是类型是遗传类型。 如果我们用它创建实例并通过第三个括号访问,它将以基本下标的形式给出结果,如.. 下标中的多参数: 下标可以采用多个参数并进行计算,例如: 实例: 数组: 在Swift Array中实际上是一个通用的Struct。 其中有一个下标,为什么我们可以通过第三个括号访问元素?这是一个示例: 在这里,我们使用struct Array及其类型String来创建实例数组。然后在其上分配两个名称,并通过第三个括号[]来访问元素。CosArray Struct在swift库中的下标中具有以下内容: 公共下标(索引:Int)->元素 在Swift Array中,String Int和所有其他基本数据类型实际上是在struct中构建的。 保持摇摆不忘与朋友分享给我启发。

全面理解快速下标(第1部分)

介绍 : 当我第一次开始通过阅读Apple swift书来学习Swift时,我被这个怪异的单词Subscript吓倒了。 我曾经用第三括号从数组中检索数据。 但是我注意到有些结构有一个单词下标,而那些结构也使用第三个括号..so检索数据。今天,我将尝试解释什么是下标以及它如何神奇地工作。 问题: 如何在没有任何方法的情况下从结构,类和枚举访问列表 什么是下标? 下标只不过是创建用于访问集合,列表或序列的成员元素的快捷方式。换句话说,我们可以说下标是用于从struct,class和enum中访问元素的工具或No Name函数。 魔术下标语法: 在类或枚举下标语法中,就像没有方法名称的方法一样,它具有参数和返回类型,就像带有下标关键字的普通函数一样 基本下标示例: 让我们创建一个专辑结构,其中包含一个名为song的数组,其中包含所有六首歌曲并带有一个下标。 使用第三括号[]访问值: 现在,如果我们要访问歌曲数组,我们需要执行以下代码 在这里,我们创建一个专辑结构实例,并按下标访问歌曲列表的1个索引值。结果应为“ bikhon”。该专辑结构具有一个下标,该下标按其给定的索引号返回字符串值。 这是我们使用的第三个括号。第三个[]括号与数组访问[]不同 如果我们要以一般方式访问歌曲数组,则需要执行以下代码: 希望这是有意义的! 下标类别: 在Class中,其语法也与struct相同。Createclass及其属性,不使用关键字下标创建nome函数,并返回其值 从类中获取价值: 使用array和listOfPlanet数组创建Planet实例,并通过[indexNumber]访问planet列表 下标计算: 该Struct具有一个名为valueWithMultiply的存储属性,其下标带有一个Int值。 在下标主体中,此存储属性valueWithMultiply乘以Int值,然后返回Int。 使用乘数: 因此,创建并乘以值5并乘以5的乘数实例。 结果应为25。 为什么结果25: 1.Multiplier Struct有一个下标,该下标通过其参数( multipedBy )获取一个Int值。 2.在下标主体中,返回具有存储的属性(valueWithMultiply)和参数( multipedBy)的计算值 3.So这里,当我们创建值为5的实例“ fiveTimes”时 ,store属性(valueWithMultiply)得到5。 4.比当我们通过[5]访问该实例时,其下标参数取5并计算并返回25… 因此,在第2部分中,我将详细介绍字典Array中的下标Generic下标, 所以第二部分请点击这里:第二部分 继续摇摆。