更新数据

温馨提示:本文最后更新于2025-01-19 16:56:03,某些文章具有时效性,若有错误或已失效,请在下方留言

在 SwiftData 中更新数据非常简单,默认情况会自动保存,无需手动调用保存操作。以下示例演示了创建一个 Student模型,并获取模型的数据进行更新,数据将自动保存:

@Model class Student {
    var id: UUID = UUID()
    var name: String
    var age: Int
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

struct ContentView: View {
    @Query private var students: [Student]
    var body: some View {
        List(students) { item in
            HStack {
                Text(item.name)
                Button("Update") {
                    item.name = "Modify Name"
                }
            }
        }
    }
}

通过标识符查找对象更新

示例展示了如何通过持久化标识符查找并更新数据模型中的对象。通过使用 @Environment 获取模型上下文,确保可以对模型进行安全的读取和写入操作:

struct ContentView: View {
    @Environment(\.modelContext) private var context

    func update(yourID: PersistentIdentifier) {
        if let student = context.model(for: yourID) as? Student {
            student.name = "Modify Name"
        }
    }
}

编辑预览

在 SwiftUl 视图中编辑并更新 SwiftData 中的数据。

struct ContentView: View {
    @Query private var students: [Student]
    var body: some View {
        List(students) { item in
            HStack {
                Text(item.name)
                EditingView(school: student)
            }
        }
    }
}
struct EditingView: View {
    @Bindable var school: School

    var body: some View {
        Form {
            TextField("Name", text: $school.name)
        }
    }
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容