@frozen
將此屬性應(yīng)用于結(jié)構(gòu)或枚舉聲明,以限制可以對類型進(jìn)行更改的種類谴返。僅在庫演化模式下編譯時才允許使用此屬性寇钉。library的未來版本無法通過添加歇盼,刪除或重新排列枚舉的案例或結(jié)構(gòu)的存儲實(shí)例屬性來更改聲明攘烛。非凍結(jié)類型允許進(jìn)行這些更改魏滚,但它們會破壞凍結(jié)類型的ABI兼容性。
注意,當(dāng)編譯器不處于庫演化模式時坟漱,所有結(jié)構(gòu)和枚舉都將隱式凍結(jié)鼠次,并且將忽略此屬性。
在庫演化模式下,與非凍結(jié)結(jié)構(gòu)和枚舉進(jìn)行交互的代碼將以某種方式進(jìn)行編譯腥寇,即使該庫的未來版本增加成翩,刪除或重新排序了該類型的某些成員,該代碼也可以繼續(xù)工作而無需重新編譯赦役。編譯器使用諸如在運(yùn)行時查找信息并添加間接層等技術(shù)使之成為可能麻敌。將結(jié)構(gòu)或枚舉標(biāo)記為凍結(jié)將放棄這種靈活性來獲得性能:庫的未來版本只能對類型進(jìn)行有限的更改,但是編譯器可以在與類型的成員進(jìn)行交互的代碼中進(jìn)行其他優(yōu)化掂摔。
凍結(jié)類型庸论,凍結(jié)結(jié)構(gòu)的存儲屬性的類型以及凍結(jié)枚舉案例的關(guān)聯(lián)值必須是公開的或帶有usableFromInline屬性標(biāo)記。凍結(jié)結(jié)構(gòu)的屬性不能具有屬性觀察器棒呛,并且為存儲的實(shí)例屬性提供初始值的表達(dá)式必須遵循與inlinable相同的限制,如inlinable中所述域携。
實(shí)戰(zhàn)代碼
SwiftUI 代碼如何兼容iOS 13 和 iOS 14 (教程含源碼)
推薦
基礎(chǔ)文章推薦
經(jīng)典教程推薦
上新
技術(shù)源碼推薦
推薦文章
CoreData篇
- SwiftUI數(shù)據(jù)存儲之做個筆記App 新增與查詢(CoreData)
- SwiftUI進(jìn)階之存儲用戶狀態(tài)實(shí)現(xiàn)登錄與登出
- SwiftUI 數(shù)據(jù)之List顯示Sqlite數(shù)據(jù)庫內(nèi)容(2020年教程)
Combine篇
TextField篇
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源碼)》
- 《SwiftUI實(shí)戰(zhàn)之TextField風(fēng)格自定義與formatters》
- 《SwiftUI實(shí)戰(zhàn)之TextField如何給鍵盤增加個返回按鈕(隱藏鍵盤)》
- 《SwiftUI 當(dāng)鍵盤出現(xiàn)時避免TextField被遮擋自動向上移動》
- 《SwiftUI實(shí)戰(zhàn)之TextField如何給鍵盤增加個返回按鈕(隱藏鍵盤)》
JSON文件篇
一篇文章系列
- SwiftUI一篇文章全面掌握List(教程和源碼)
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源碼)》
- SwiftUI一篇文章全面掌握Picker,解決數(shù)據(jù)選擇(教程和源碼)
- SwiftUI一篇文章全面掌握Form(教程和源碼)
- SwiftUI Color 顏色一篇文章全解決
技術(shù)交流
QQ:3365059189
SwiftUI技術(shù)交流QQ群:518696470
- 請關(guān)注我的專欄icloudend, SwiftUI教程與源碼
http://www.reibang.com/c/7b3e3b671970