当前位置:   article > 正文

深理解@State 变量 SwiftUI

@state

让我们先开始了解Struct。存储在内存中的结构属性不同于类。类属性在堆内存中有引用因此类有指针,您可以直接更改内存中的值并且类继续在堆中引用已更改的值但是结构是值类型构造这意味着当您更改值时,您需要更改结构本身。

让我们从非常基本的例子开始:

struct Test {
    private var a = 0
    
    func change() {
        a = 2
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里,我们从一个测试结构开始,创建了一个私有的 var int = 0 并创建了 change func,基本上改变了一个参数。但是这里编译器抱怨这个错误:无法分配给属性:'self’是不可变的

为了解决这个问题,我们需要添加mutating func,它显示了这个函数 mutates struct。这如何帮助这种变异以及我们为什么需要它?

让我们继续使用这个测试结构:

private  func  test () { 
  let test =  Test () 
  test.change() 
}
  • 1
  • 2
  • 3
  • 4

如果我们的 change func 没有发生变异,那么在我们向函数添加变异后,这段代码就不会抱怨。编译器会报错:Cannot use mutating member on immutable value: ‘test’ is a ‘let’ constant

此外,如果我们定义 let Struct -> 我们确信它的属性也是不可变的。我们知道这对课堂来说并非如此。

让我们继续 SwiftUI

struct ContentView: View {
    
    @State private var sliderValu
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/256839
推荐阅读
相关标签
  

闽ICP备14008679号