排序
级联关系删除
SwiftData 默认的关系删除规则是.nullify,这意味着如果一个 School 对象与多个 Student对象关联,删除 School 后,学生对象仍会保留在数据存储中。在某些情况下这是合理的,但你也可以使用.cas...
多对多关系
在SwiftData 中,当关系的双方都使用数组时,就会创建多对多关系。这类关系相当常见,比如:一个老师有多个学生,一个学生可以有多个老师;一个演员参演了多部电影,一部电影也有许多演员参与;...
一对多关系
一对多关系是 SwiftData 中最常见的关系类型,当关系的一方有一个数据数组,而另一方是可选时,会自动创建这种关系。 例如,我们可以说每个学生属于一个班级,而每个班级有很多学生 @Model clas...
一对一关系
一对一关系意味着每个 A对象都有一个对应的B对象,例如说每个人都有一本护照,或者每只宠物都有一个主人。 例如,如果我们有 Country 和 City 模型,它们之间有一个真正的一对一关系,那么在创...
@Transient 宏忽略属性持久化
如果你的模型类有一个或多个存储属性,希望在写入持久化存储时忽略一些属性,可以使用 @Transient 宏进行标注,这样 SwiftData 就不会将它们的值写入磁盘。 默认情况下,SwiftData 会将所有计算...
@Attribute 宏定义属性
框架默认的行为适用于大多数使用场景,能够有效管理模型类的存储属性。然而,如果您需要更改特定属性的持久化行为,可以使用 @Attribute 宏对其进行注解。例如,您可以通过指定某个属性的值在该...
使用 @Model 宏定义模型
您将使用 @Model 宏来定义所有 SwiftData 模型类。该宏会自动使您的类能够从 SwiftData 加载和存储数据,支持观察更改,并添加 Hashable、Identifiable、Observable 和 PersistentModel 的遵循...
模型配置
ModelConfiguration 是SwiftData 中用于确定数据存储方式和位置的组件。它指定了使用哪个 CloudKit 容器(如果有的话),以及是否启用保存功能。这些配置提供给模型容器,以决定其行为。通过合...
模型容器
ModelContainer 是 SwiftData 中负责创建和管理实际数据库文件的核心组件。它提供了集中化的存储方案,确保数据的持久化和高效访问。ModelContainer 处理数据模型的定义、数据库文件的生成与管...
模型上下文
ModelContext 是 SwiftData 中负责跟踪所有在内存中创建、修改和删除的对象的组件。它确保这些对象能够在稍后某个时刻保存到模型容器中。ModelContext 提供了一个便捷的方式来管理对象的状态,...