@frozen
将此属性应用于结构或枚举声明,以限制可以对类型进行更改的种类。仅在库演化模式下编译时才允许使用此属性。library的未来版本无法通过添加,删除或重新排列枚举的案例或结构的存储实例属性来更改声明。非冻结类型允许进行这些更改,但它们会破坏冻结类型的ABI兼容性。
注意,当编译器不处于库演化模式时,所有结构和枚举都将隐式冻结,并且将忽略此属性。
在库演化模式下,与非冻结结构和枚举进行交互的代码将以某种方式进行编译,即使该库的未来版本增加,删除或重新排序了该类型的某些成员,该代码也可以继续工作而无需重新编译。编译器使用诸如在运行时查找信息并添加间接层等技术使之成为可能。将结构或枚举标记为冻结将放弃这种灵活性来获得性能:库的未来版本只能对类型进行有限的更改,但是编译器可以在与类型的成员进行交互的代码中进行其他优化。
冻结类型,冻结结构的存储属性的类型以及冻结枚举案例的关联值必须是公开的或带有usableFromInline属性标记。冻结结构的属性不能具有属性观察器,并且为存储的实例属性提供初始值的表达式必须遵循与inlinable相同的限制,如inlinable中所述。
实战代码
SwiftUI 代码如何兼容iOS 13 和 iOS 14 (教程含源码)
推荐
基础文章推荐
经典教程推荐
上新
技术源码推荐
推荐文章
CoreData篇
Combine篇
TextField篇
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- 《SwiftUI实战之TextField风格自定义与formatters》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
- 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
JSON文件篇
一篇文章系列
- SwiftUI一篇文章全面掌握List(教程和源码)
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
- SwiftUI一篇文章全面掌握Form(教程和源码)
- SwiftUI Color 颜色一篇文章全解决
技术交流
QQ:3365059189
SwiftUI技术交流QQ群:518696470
- 请关注我的专栏icloudend, SwiftUI教程与源码
https://www.jianshu.com/c/7b3e3b671970