协议-Swift的力量

更新于2019年2月24日,格林尼治标准时间上午4:51 5:30+

先决条件—任何Swifty iDev均可初学者或专家阅读。 通过从头到尾阅读本系列文章,初学者将获得知识,专家将增强其知识。

我们都知道Apple的UIKit,MapKit和所有其他框架都是在委托模式的基础上开发的。

大多数iDev都知道协议是用于委托人和数据源在视图,视图控制器或自定义类之间传递和请求数据的,但是该协议的真正功能是类型转换 ,AnyObject是迅速实现的协议,用于存储任何类型的对象。


类型转换是将变量或值的数据类型从一种类型转换为另一种类型的过程。

我还有一个问题,如果上面是类型转换,那么协议在这里的作用是什么?

当然,经过几个动作,我会给这个问题一个答案,敬请期待。 让我们首先介绍基本概念。

以上只是原始类型转换的一个简单示例。 原始类型转换是由Int,Float,Double等编程语言提供的原始数据类型之间的类型转换。

另一种类型转换是类级别的类型转换,有时称为自定义类型转换。 类,结构,枚举被视为可以由像您这样的开发人员创建的自定义类型,自定义类型转换在继承中起关键作用。

  • — — — — — — — — — — — — — —
  • 该类的每个实例都有#n个类类型
  • — — — — — — — — — — — — — —
  • 如果A类不是任何类的子类,则#n将为A类
  • [例如(A类)— A没有任何超类]
  • — — — — — — — — — — — — — —
  • 如果该类是一个类的子类,并且该类的超类不是任何其他类的子类,则#n对于A类将为2
  • [例如(A类)->(B类)— A是B的子类,B没有任何超类]
  • — — — — — — — — — — — — — —
  • 如果该类是该类的子类,并且该类的超类也是该类的子类,并且该类的超类的超类不是任何其他类的子类,则#n将为3
  • [例如(A类)->(B类)->(C类)— A是B的子类,Bis是C的子类,C没有任何超类]
  • — — — — — — — — — — — — — —
  • 同样,#n将为4、5、6,依此类推。
  • — — — — — — — — — — — — — —

到目前为止,以上规则仅在子类的上下文中,当您对协议的功能有了清晰的了解时,它将被更新。

如果您需要有关“ 我的 ”的更多说明,请在下面写下您的评论 可能的类类型的经验法则”, 或者对于您来说似乎很复杂。


现在该回答您的问题了。

未完待续…
第2部分-使用协议进行类型转换