- 使用 self:self是一个特殊的关键字,表示当前类型的实例或结构体中的成员。它用于在类型内部引用当前实例的属性或方法。例如,在实例方法中,可以使用self 来引用该方法所属的实例:
- 示例代码如下:
struct Person {
var name: String
func printName() {
print(self.name)
}
}
let person = Person(name: "John")
person.printName() // 输出:John
在上面的示例中,self.name 引用了 Person 结构体实例中的 name 属性。
- 使用 $:$ 前缀用于引用属性的封装器或绑定器。在 SwiftUI 中,当我们绑定视图的属性到 @State、@Binding或其他属性包装器时,可以使用 $ 来访问属性的封装器或绑定器。这样可以使我们可以在 SwiftUI 中修改属性的值。
- 示例代码如下:
struct ContentView: View {
@State private var isShowingDetail = false
var body: some View {
Button("Toggle") {
self.isShowingDetail.toggle()
}
if $isShowingDetail.wrappedValue {
Text("Detail View")
}
}
}
在上面的示例中,$isShowingDetail 引用了 @State 属性包装器的封装器,我们可以通过对其调用 wrappedValue 属性来获取和修改包装的属性的值。
注意,使用 $ 前缀只适用于使用属性包装器的情况,而不是普通的属性访问。
综上所述,self 用于引用当前实例的属性和方法,而 $ 用于访问属性的封装器或绑定器,以便在 SwiftUI 中修改属性的值。