Swift3.0 - 真的很简单
Swift3.0 - 数据类型
Swift3.0 - Array
Swift3.0 - 字典
Swift3.0 - 可选值
Swift3.0 - 集合
Swift3.0 - 流控制
Swift3.0 - 对象和类
Swift3.0 - 属性
Swift3.0 - 函数和闭包
Swift3.0 - 初始化和释放
Swift3.0 - 协议protocol
Swift3.0 - 类和结构体的区别
Swift3.0 - 枚举
Swift3.0 - 扩展
Swift3.0 - 下标
Swift3.0 - 泛型
Swift3.0 - 异常错误
Swift3.0 - 断言
Swift3.0 - 自动引用计数(strong,weak,unowned)
Swift3.0 - 检测API
Swift3.0 - 对象的标识
Swift3.0 - 注释
Swift3.0 - 元类型
Swift3.0 - 空间命名
Swift3.0 - 对象判等
Swift3.0 - 探究Self的用途
Swift3.0 - 类簇
Swift3.0 - 动态调用对象(实例)方法
Swift3.0 - 文本输出
Swift3.0 - 黑魔法swizzle
Swift3.0 - 镜像
Swift3.0 - 遇到的坑
- 实现步骤
1.对象遵守协议Equatable
2.实现协议的方法
a.第一种写法 在类内部实现
class A :Equatable{
var name:String?
static func ==(lhs: A, rhs: A) -> Bool{
return lhs.name == rhs.name
}
}
b.第二种写法 将实现方法写到全局去
class A :Equatable{
var name:String?
}
func ==(lhs: A, rhs: A) -> Bool{
return lhs.name == rhs.name
}
c.你也可以使用扩展方式去实现协议
extension A: Equatable {
static func ==(lhs: A, rhs: A) -> Bool{
return lhs.name == rhs.name
}
}
运行下面代码:
let classa = A()
classa.name = "酷走天涯"
let classb = A()
classb.name = "酷走天涯"
if classa == classb {
print("==")
}
运行结果:
==
友情提示:
如果对象没有实现Equatable 协议方法,系统不允许使用 == 进行判断,这是swift的严谨性