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

SwiftData一对多关系保存后出现重复条目问题排查

SwiftData一对多关系保存后关联条目数量异常翻倍

我实现了向SwiftData一对多关系中添加条目的逻辑,代码如下:

let modelA = ModelA.createDummyData()
modelContext.insert(modelA)

// 创建ModelB并关联到modelA
let modelB = ModelB.createDummyData(for: modelA)

print(modelA.modelBs.count) // 此处输出 = 1

do {
    try modelContext.save()
} catch {
    fatalError("[ERROR] \(error)")
}

let t = try! modelContext.fetch(FetchDescriptor<ModelA>()).first!
print(t.modelBs.count) // 此处输出 = 2 !!!

保存上下文后,modelA关联的modelBs数量从1变为2,且这两个条目是不同的(已通过UUID验证)。我的关系定义遵循最佳实践:

@Model public class ModelA {
    @Relationship(deleteRule: .cascade, inverse: \ModelB.modelA) public var modelBs: [ModelB] = []
}

@Model public class ModelB {
    public var modelA: ModelA?
}

我尝试过SQL调试但没得到有效信息,且确认ModelB的init仅被调用一次。请问该现象的原因是什么?有哪些可行的调试方法?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:14:55