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
相关产品推荐
相关产品推荐

