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的嚴謹性