Ios 为什么SwiftUI需要@Binding和@State变量的_propertyName样式初始化?
如果尝试创建具有@State或@Binding属性的SwiftUI视图 例: 您将收到错误:无法将“Binding”类型的值分配给“String”类型 如果将初始值设定项更改为:Ios 为什么SwiftUI需要@Binding和@State变量的_propertyName样式初始化?,ios,swift,swiftui,Ios,Swift,Swiftui,如果尝试创建具有@State或@Binding属性的SwiftUI视图 例: 您将收到错误:无法将“Binding”类型的值分配给“String”类型 如果将初始值设定项更改为: init(foo: Binding<String>) { _foo = foo } 它“只是工作” “\ux”语法是怎么回事?这到底在做什么?看起来您正在ObjC中设置ivar,但我非常怀疑这是怎么回事。@Binding只是为您创建了另一个属性,如下所示 struct TestView: View
init(foo: Binding<String>) {
_foo = foo
}
它“只是工作”
“\ux”语法是怎么回事?这到底在做什么?看起来您正在ObjC中设置ivar,但我非常怀疑这是怎么回事。@Binding只是为您创建了另一个属性,如下所示
struct TestView: View {
@Binding var foo: String
等于
struct TestView: View {
var foo: String
var _foo: Binding<String>
现在很清楚,在下面的初始化中,您只需初始化相应的成员
init(foo: Binding<String>) {
_foo = foo
}
@绑定只是为您创建另一个属性,如下所示
struct TestView: View {
@Binding var foo: String
等于
struct TestView: View {
var foo: String
var _foo: Binding<String>
现在很清楚,在下面的初始化中,您只需初始化相应的成员
init(foo: Binding<String>) {
_foo = foo
}
这有文件记录吗?我试图查看绑定的源代码,但没有看到任何关于创建shadow变量的内容…@JoeSusnick,这是通用属性包装器语法概念,请参阅文档指针!现在更有意义了!这有文件记录吗?我试图查看绑定的源代码,但没有看到任何关于创建shadow变量的内容…@JoeSusnick,这是通用属性包装器语法概念,请参阅文档指针!现在更有意义了!你也可以写self;你也可以写self;