gpt4 book ai didi

ios - SwiftUI 中是否有 didSet 的替代方案?

转载 作者:行者123 更新时间:2023-11-29 05:17:36 25 4
gpt4 key购买 nike

我想在获得 User() 后立即更改名称。 DidSet 在这里不起作用。 SwiftUI 中是否有替代 didSet 的方法?

struct Person: Identifiable {
let id = UUID()
var name: String
var number: Int
}

class User: ObservableObject {
@Published var array = [Person(name: "Nick", number: 3),
Person(name: "John", number: 2)
]
}

struct ContentView: View {

@ObservedObject var user = User() {
didSet {
user.array[0].name = "LoL"
}
}

var body: some View {
VStack {
ForEach (user.array) { row in
Text(row.name)
}
}
}
}

最佳答案

如果我正确理解了您的期望(拥有您的代码),那么有几个选项可以实现目标:

选项 1:在 init 中设置创建的用户(作为在 init 之前创建的属性)

init() {
self.user.array[0].name = "LoL"
}

选项 2:在 View 外观上设置

VStack {
ForEach (user.array) { row in
Text(row.name)
}
}
.onAppear {
self.user.array[0].name = "LoL"
}

关于ios - SwiftUI 中是否有 didSet 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59015419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com