【发布时间】:2021-07-05 20:11:33
【问题描述】:
我是 Swift 新手,很抱歉这个基本问题。
我创建了一个自定义类,我想在 SwiftUI 中显示这个自定义类的列表。我想跟踪此列表中的更改(新元素,删除元素)。我无法更改类的性质,但我可以创建或不创建自定义类,该类的实例列表。
import SwiftUI
public class User: NSObject,Codable,ObservableObject {
var username : String
public override init() {
self.username = "VOID"
}
public func setUsername(username:String){
self.username=username
}
}
var uad1:User = .init()
var uad2:User = .init()
var listUR: [User] = []
struct listM: View {
init() {
uad1.setUsername(username: "user1")
listUR.append(uad1)
}
var body: some View {
LazyVStack {
ForEach(listUR.indices) { i in
Text(verbatim: listUR[i].username)
.onTapGesture {
addElement()
}
.onAppear(){
print(i)
}
}
}
}
private func addElement(){
uad2.setUsername(username: "user2")
listUR.append(uad2)
}
}
如果我使用@State 对象作为列表,则不会显示任何内容。作为列表,点击手势时显示第一个元素,但不显示第二个元素。尝试使用 Observed 对象但不能循环 ForEach。请注意,我需要 i 索引。
【问题讨论】:
-
试试Apple SwiftUI Tutorials 所有这些都是非常基本的东西
-
谢谢你,但在询问之前我搜索了但找不到足够相似的东西,我可以适应它
-
User是否需要是一个类 - 它可以是一个结构吗?