我有一对多关系SwiftData模型。但是,当我尝试追加数据时,导致错误SwiftData/PersistentModel.swift:540: Fatal error: Unsupported relationship key path ReferenceWritableKeyPath<Student, School>
。我应该如何解决这个问题?
@Model
final class School {
var name: String
@Relationship(deleteRule: .cascade, inverse: \Student.school)
var students: [Student] = []
init(name: String) {
self.name = name
}
}
@Model
final class Student {
var fullName: String
var school: School
init(fullName: String, school: School) {
self.fullName = fullName
self.school = school
}
}
个字符
如果我注解掉self.school.students.append(student)
行,它工作正常,但即使我删除学校,属于学校的学生也不会被删除为级联删除。我在苹果论坛https://developer.apple.com/forums/thread/736908上发现了类似的问题
1条答案
按热度按时间eyh26e7m1#
即使您已经为学生分配了学校,也要将该学生附加到学校。
字符串
SwiftData将为您处理关系的另一端,因此
students.append(student)
将在Student
init中的self.school = school
行自动完成。因此,只需删除函数中用于添加学生的append()代码即可
型