几乎在我见过的所有关于 SwiftData 的教程中,它们都将 @Model 相互关联起来。 是否可以使用 SwiftData 进行强引用循环?或者将它们标记为 @Relationship(deleteRule: .cascade) 或 nullify 就足够了吗?
示例。
@Model
class Country {
var name: String
var states: [State]
init(...)...
}
@Model
class State {
var name: String
var country: Country
init(...)...
}
模型本身不存储关系,在幕后存储由
ModelContext
解决。因此,从这个角度来看,即使是循环关系也是安全的(保留循环)。
仅当您的数据库规则要求相关模型也被删除时,才需要@Relationship(deleteRule: .cascade)
。