0

我注意到一个 Xcode 自动完成建议,它@State似乎不仅自动生成一个$-prefixed 成员来访问相应的Binding(众所周知),而且还有一个_-prefixed 成员,似乎暴露了实际的State包装器。

这让我想知道,它的用例是什么,文档中在哪里提到它?

在此处输入图像描述

4

1 回答 1

3

我发现这实际上是由于 Swift(而不是 SwiftUI)如何在后台编译propertyWrappers。

来自官方 swift 文档(在 propertyWrapper 下):

编译器通过在被包装属性的名称前加上下划线 (_) 来合成包装类型实例的存储——例如,someProperty 的包装被存储为 _someProperty。包装器的合成存储具有私有访问控制级别。

这是每次使用 a 时发生的情况propertyWrapper

在此处输入图像描述 (来自更好的编程

至于它在 SwiftUI 上下文中的实际应用,您可以使用它来初始化@State变量,如this SO answerthis blog post中所述。

于 2021-02-10T17:34:27.693 回答