如何正确使用 createOrUpdateInRealm?

How to properly use createOrUpdateInRealm?

我正在使用 Realm 在我的应用程序中处理持久数据到磁盘。我正在将 ArticleCollection 对象存储到 Realm(这只包含一个 NewsArticle 对象数组)。

我正在使用 createOrUpdateInDefaultRealmWithValue 创建新的 ArticleCollection 或更新现有的 ArticleCollection(使用 ArticleCollection 上的主键实现)。

当应用程序获取新文章时,这目前运行良好,它将覆盖当前的文章集合并替换为 ArticleCollection 的新实例。

问题是当 ArticleCollection 被替换时(在 Realm brwoser 中我可以看到 ArticleCollection 的计数总是如预期的 1),NewsArticles 的数量总是增加。似乎 ArticleCollection (NewsArticle) 的子对象从来没有得到 replaced/deleted,只是附加到.

如何确保当我使用createOrUpdateInRealm时,它会删除所有子对象?

确保也在您的 NewsArticle 对象上使用主键。否则这些新闻文章将不会更新。这就是为什么您会看到越来越多的新闻文章。