Swift 3中的协议简介

嗨,Apple,什么是协议?

协议定义了适合特定任务或功能的方法,属性和其他要求的蓝图。

– 苹果

在我看来:

再次阅读定义,并称之为一天。

– 苹果

因此,我正在写这篇文章来澄清问题。 同时使事情变得有趣。 稍后,我们将在我们的协议中使用UFC战斗机示例,希望最后一切都会有意义。

协议是什么

协议是继承标题的先决条件列表。 那是正式的定义。

如果有一件事可以帮助您记住协议是什么,那就是黑帮的定义:

一个协议就是您需要这个,这个和这个。 被称为这个。

您需要喝酒,聚会和拖延才能被称为刻板印象的大学生。 这就是我记得并向人们解释什么是协议的方式。

协议语法

语法结构类似于类/结构/枚举。

UFC战斗机协议

一天。 醒来。 您只想成为UFC战士。 您上了达纳·怀特(UFC主席),您问我如何成为UFC战斗机?

“没问题。 让我们谈谈先决条件,属性和方法。” —达娜·怀特

让我们从properties开始。 要成为UFC战士,您需要做的事情。 您需要有一个确定的名称和一个可选的昵称。

这是什么意思 这意味着您在设置名称后便无法更改它。 但是,您可以在设置昵称后对其进行更改。 昵称也可以为nil。

现在让我们谈谈方法 。 成为UFC战士需要做的事情。 您绝对需要能够在UFC中拳打脚踢。 Aka知道基本知识。 您还可以选择垃圾留言。

这是什么意思 这意味着说垃圾话可能是UFC战斗机的能力。 但是,您不必拥有它。 您可以直接战斗。

我觉得您已经在使用UFC协议了。 如果没有,到最后您会感到更多。

我们已经定义并解释了我们的规格。 现在让我们看看如何定义协议。

定义协议的步骤

1.结构和命名协议

 协议UFCFighter { 
  } 

2.添加属性要求

 协议UFCFighter { 
  var名称:字符串{get} 
var昵称:字符串? {设置}
  } 

因此, 获取设置 。 让我们澄清一下。 这些称为变量属性。 您将单独调用get ,gettable。 呼叫设置 ,可设置 。 他们像他们听起来那样。

因此,要传达var nickname我们可以说:

我们声明了一个具有gettable和settable属性的可选字符串类型的昵称变量。

3.添加明确的方法要求

 协议UFCFighter { 
  var名称:字符串{get} 
var昵称:字符串? {设置}
  funcpunch() 
funk kick()
func grapple()
  } 

我们添加了必不可少的拳打,踢和抓钩。

4.添加可选方法要求

  @objc协议UFCFighter { 
  var名称:字符串{get} 
var昵称:字符串? {设置}
  funcpunch() 
funk kick()
func grapple()
  @objc可选功能funcTrashTalk() 
  } 

我们刚刚添加了可选的垃圾回收方法。

看看您是否发现了惊喜礼物。 吓死了吗? 不用担心 这只是我们用来使用可选方法声明协议的语法。 首先,我们在协议关键字前面添加@objc关键字。 然后,在可选方法前面添加@objc optional关键字。

为什么协议

协议很棒,因为它可以确保您拥有所需的一切。 它不允许您忘记任何事情。 这就好比您上学并且有协议时,必须记住随身携带笔记本电脑和所需的任何学校设备。

协议在哪里

在表视图委托和数据源之前,您可能已经看到了很多协议。 这些是协议的示例。

我们通常使用它们的方式称为类采用。 我们有一个UIViewController并采用了协议。 我只是要命名最常见的用例,以便我们知道那里有什么。 协议用例包括类/结构/枚举的采用,委托模式和面向协议的编程。

最后的评论

希望您喜欢并从我的文章中学到了宝贵的经验。 如果有的话,请点击那个❤按钮让我知道,然后在Medium上关注我。 另外,分享这篇文章,以便您的圈子也可以获取一些知识。

对于那些感兴趣的人,这里是我的LinkedIn。

最后,如果您有任何评论,问题或建议,请随时将其放在下面。