'RLMException',原因:'无法将'Person'类型的对象设置为'Person'类型的属性

问题描述 投票:0回答:1

我有一个具有以下字段的 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'

这似乎没有意义,因为错误本身表明数据类型相同。我把它们都打印出来了,它们是一样的。这是怎么回事?

我试过明确地投射到人身上。我确定我应该能够将字段设置为新的人员记录。

ios swift xcode realm
1个回答
0
投票

我开始工作了。我从用于填充 Picker 的 @ObservedResults 中获取选定的 Person 对象:

@ObservedResults(Person.self) private var people

我将其交换为从现有的 Jobs 对象获取领域,然后使用该领域实例运行查询以获取 Person 记录。然后将此结果无误地添加到 Jobs 对象中。

© www.soinside.com 2019 - 2024. All rights reserved.