Tag: Iosprotocols

iOS协议:相等 可比

自WWDC 2015以来,iOS一直在朝着面向协议的程序设计方向发展,苹果对此进行了提及,此后苹果为我们引入了不同的协议供我们使用,这使我们的工作更加轻松便捷。在工作期间,我遇到了许多可以使用的iOS协议对于本文中的不同任务,我将讨论其中两个及其用途。 公平可比。 apple引入的Equatable协议为我们提供了检查一个类的两个实例之间相等性的功能,借助于Equatable协议,我们可以使用“ ==”和“!=”运算符。需要比较的类应该符合此协议。下面是它的示例。 假设我们创建了一个结构,名为student struct Student {let rollNumber:Int? 让名字:字符串? init(rollNumber:Int,name:String){self.rollNumber = rollNumber self.name =名称}} 我们创建了两个学生实例 让robin:Student = Student(rollNumber:1,name:“ Robin”)let lovekesh:Student = Student(rollNumber:1,name:“ Lovekesh”) 我们想比较这两个实例 if(robin == lovekesh){ 打印(“相同实例”) } 但是在这种情况下,Xcode将显示错误 因此,编译器无法理解为解决此问题而需要做的事情,我们需要继承并遵循Equatable协议,并遵循Equatable手段来覆盖“ ==”运算符,以下是示例 struct Student:Equatable { 静态函数==(lhs:学生,rhs:学生)-> Bool { 如果lhs.rollNumber == rhs.rollNumber { 返回真 }其他{ 返回假 } } let rollNumber:Int? 让名字:字符串? init(rollNumber:Int,name:String){ self.rollNumber = […]