You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftData报错:Schema.Relationship.Option无cascade成员,级联删除无法设置

SwiftData 级联删除的正确实现方式

你提到的Relationship(.cascade)写法已被调整,Apple在SwiftData的迭代中更新了API,现在需要通过@Relationship的deleteRule参数配置级联删除逻辑。

正确代码示例

首先确保关联的MyCustomObject也是@Model类型:

@Model
class MyCustomObject {
    // 定义你的属性
}

然后修改MyThing模型,给关联属性指定级联删除规则:

@Model
class MyThing {
    var name: String
    @Relationship(deleteRule: .cascade) var myObject: MyCustomObject

    // SwiftData要求必须显式添加初始化方法
    init(name: String, myObject: MyCustomObject) {
        self.name = name
        self.myObject = myObject
    }
}

关键说明

  • 配置deleteRule: .cascade后,删除MyThing实例时,关联的MyCustomObject会被自动级联删除。
  • 如果MyCustomObject同时被其他@Model对象关联,级联删除可能无法生效(存在其他强引用),需根据业务场景调整其他关联的删除规则。

内容的提问来源于stack exchange,提问作者Nerdy Bunz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:17:04