首页 > 解决方案 > 删除后如何保持一对一记录之间的连接?

问题描述

这个问题有点棘手,所以我会尽力解释清楚。起初,我有 2 个实体,Books它们Favorites以一对一的方式连接。

Books: bookID, title Favorites:bookID

当我点击时,favoriteButton我执行以下代码:

let favorite = Favorites(context: context)
favorite.bookID = book.id
favorite.book = book

当我想检查这本书是否受欢迎时,我会:

if book.favorite != nil

现在关于问题:

在某些时候,我必须删除ALL书籍并再次添加它们,例如重置Books表,当我删除和添加一本书时,它会使用新 ID(内部 CoreData ID,而不是来自服务器)添加它,因此我失去了和之间的Books连接Favorites,即使是最喜欢的书仍然存在,并且仍然保留所有值。

我该如何解决这个问题?即使在删除之后,我还能以某种方式保留记录之间的关系吗?在网络中,我会将外键设置为bookID并与之连接。在这种情况下,我不会失去该连接,但由于 CoreData 通过记录的内部 ID 而非对象进行连接,因此我失去了连接并且无法再检查book.favorite,它返回nil.

我希望我能描述我的问题。如果没有,请问我

标签: iosswiftcore-data

解决方案


推荐阅读