排序
如何在 SwiftUI 预览中使用 SwiftData
基于模型扩展在模型的基础上进行扩展,这里以 movie 模型为例import Foundation import SwiftData @Model final class Movie { var title: String var year: Int @Relationship(deleteRule: .ca...
@Attribute 宏定义属性
框架默认的行为适用于大多数使用场景,能够有效管理模型类的存储属性。然而,如果您需要更改特定属性的持久化行为,可以使用 @Attribute 宏对其进行注解。例如,您可以通过指定某个属性的值在该...
插入数据
在SwiftData 中插入数据非常简单,默认情况下数据会自动保存,无需手动调用保存操作。以下示例演示了如何创建一个 Student 模型并插入一条记录,数据将自动保存: @Model class Student { var n...
模型迁移
当你更改数据模型时,SwiftData 可以自动处理模型更新,也可以通过手动干预进行复杂的迁移。 自动处理更新迁移 以下是一些常见的小修改,SwiftData 会自动处理这些模型更新: 添加一个或多个新...
一对一关系
一对一关系意味着每个 A对象都有一个对应的B对象,例如说每个人都有一本护照,或者每只宠物都有一个主人。 例如,如果我们有 Country 和 City 模型,它们之间有一个真正的一对一关系,那么在创...
模型上下文
ModelContext 是 SwiftData 中负责跟踪所有在内存中创建、修改和删除的对象的组件。它确保这些对象能够在稍后某个时刻保存到模型容器中。ModelContext 提供了一个便捷的方式来管理对象的状态,...
SwiftData 调试
SwiftData 在调试时可以直接在输出窗口显示对应的 SQL 语句。 设置方法 点击如下的按钮,弹出 Scheme 窗口 在弹出的Scheme 窗口中,选择 Run菜单,然后选择 Argument 标签页,点击+号按钮。 然...
一对多关系
一对多关系是 SwiftData 中最常见的关系类型,当关系的一方有一个数据数组,而另一方是可选时,会自动创建这种关系。 例如,我们可以说每个学生属于一个班级,而每个班级有很多学生 @Model clas...
@Transient 宏忽略属性持久化
如果你的模型类有一个或多个存储属性,希望在写入持久化存储时忽略一些属性,可以使用 @Transient 宏进行标注,这样 SwiftData 就不会将它们的值写入磁盘。 默认情况下,SwiftData 会将所有计算...
使用 @Model 宏定义模型
您将使用 @Model 宏来定义所有 SwiftData 模型类。该宏会自动使您的类能够从 SwiftData 加载和存储数据,支持观察更改,并添加 Hashable、Identifiable、Observable 和 PersistentModel 的遵循...


