總結(jié)
| 特性 | Objective-C 協(xié)議 | Swift 協(xié)議 |
|---|---|---|
| 可選方法 | 支持 @optional
|
默認(rèn)不支持,需標(biāo)記為 @objc 和 @optional
|
| 協(xié)議擴(kuò)展 | 不支持 | 支持 |
| 值類型支持 | 僅支持類 | 支持類、結(jié)構(gòu)體、枚舉 |
| 關(guān)聯(lián)類型 | 不支持 | 支持 |
| 協(xié)議組合 | 不支持 | 支持 |
| 屬性讀寫權(quán)限 | 無(wú)法指定 | 支持 { get } 和 { get set }
|
| 默認(rèn)實(shí)現(xiàn) | 不支持 | 支持 |
| 協(xié)議繼承 | 支持 | 支持 |
| 泛型協(xié)議 | 不支持 | 通過(guò)關(guān)聯(lián)類型實(shí)現(xiàn) |
| 一致性檢查 | conformsToProtocol: |
is 和 as?
|
Swift 的協(xié)議更現(xiàn)代化、靈活,支持更多特性,如協(xié)議擴(kuò)展、關(guān)聯(lián)類型和值類型支持,使其在設(shè)計(jì)和實(shí)現(xiàn)上更強(qiáng)大。