我有一个具有以下字段的 Job 模型:
@Persisted var assigned: Person?
人物模型:
class Person: Object, Identifiable {
var id: ObjectId { _id }
@Persisted(primaryKey: true) var _id: ObjectId
@Persisted var name: String = ""
convenience init(name: String) {
self.init()
self.name = name
}
}
我有一个 SwiftUI 选择器,可以选择一个人,然后将其保存到 Job 模型中。这在创建时工作正常,但在更新时我收到以下错误:
Terminating app due to uncaught exception 'RLMException', reason: 'Can't set object of type 'Person' to property of type 'Person'
这似乎没有意义,因为错误本身表明数据类型相同。我把它们都打印出来了,它们是一样的。这是怎么回事?
我试过明确地投射到人身上。我确定我应该能够将字段设置为新的人员记录。
我开始工作了。我从用于填充 Picker 的 @ObservedResults 中获取选定的 Person 对象:
@ObservedResults(Person.self) private var people
我将其交换为从现有的 Jobs 对象获取领域,然后使用该领域实例运行查询以获取 Person 记录。然后将此结果无误地添加到 Jobs 对象中。