我想将一个对象从一个领域复制到另一个领域,但它抱怨已经存在一个具有该主键的对象。
我的应用中有两个不同的领域。一个存储在Caches文件夹中,另一个是Documents文件夹中的默认值。它们具有相同的架构。我想将一个对象从一个领域复制到另一个领域。按照文档中的指南,我使用Realm().create(_:value:update:)
制作副本。当我从ContentRealm中传入要在UserRealm中创建的故事时,我得到一个例外,说明具有主键的对象已经存在。但是,UserRealm中尚未存在类型Story
的实例,因此不应存在主键冲突。 Terminating app due to uncaught exception 'RLMException', reason: 'Attempting to create an object of type 'Story' with an existing primary key value '4'.'
我这样做错了吗?
// Copy the Story to the user database
var userStory: Story?
do {
try userRealm.write {
userStory = userRealm.create(Story.self, value:storyObjectFromContentRealm)
}
}
catch {
print("Could not copy story: \(error)")
}
答案 0 :(得分:0)
事实证明,我的对象图中隐藏了一个周期性关系。 Realm的文档警告我这件事,我认为我没事,但事实证明我不是。修改关系后,我能够成功地将对象的副本从一个领域复制到另一个领域。
如果您遇到此问题,请检查您的关系。