iphone - 将两个 CoreData 关系(具有逆关系)分配给同一实体

标签 iphone core-data nspredicate

在我的 CoreData 模型中,我有一个与特定的事件实体配对的事件实体。目前,我在事件事件之间有一个名为LatestActivity的可选关系。我现在希望专门为 NextActivity 创建一个新关系,但意识到不可能将这两种关系的逆关系设置为同一实体。

我明白为什么由于 SQlite 后备存储而无法做到这一点,但我想知道如何最好地解决它。经过一番谷歌搜索后,我看到的最佳解决方案如下:在我的 Event 实体中设置一个名为 Activities 的一对多关系,然后设置辅助函数获取并返回最新和下一个事件。

这很好,因为它允许我将来将多个事件附加到事件,但我对在哪里以及如何实现这些辅助函数感到困惑。将使用以下逻辑通过比较 Activity 实体中的 NSDate 来获取下一个和最新事件:

  • 最新事件表示当前日期之前的最近日期
  • 下一个事件表示日期晚于现在的下一个事件

但是在 CoreData 中搜索这些实体的最简洁方法是什么?我应该在哪里进行搜索?

最佳答案

当您说“意识到不可能将两种关系的逆关系设置为同一个实体”时,我可能不明白您的意思。考虑这个模型:

enter image description here

很明显,两个实体之间可能存在多个双向关系。在本例中,存在三种双向关系:

  1. 事件的事件<-->>事件的事件(从事件的角度来看是多对多)
  2. 事件的lastActivity <--> Activity的inverseLastActivity
  3. 事件的 nextActivity <--> Activity 的 inverseNextActivity

当然,您仍然需要保持lastActivity和nextActivity是最新的 - 也许,您实时导出的建议可能会更可靠。

我一直担心我误解了你的问题......

关于iphone - 将两个 CoreData 关系(具有逆关系)分配给同一实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5088715/

相关文章:

iphone - 哪里可以下载旧的 iPhone SDK?

ios - 无法从 iOS 7 中的 App Store Receipt 获取 original_application_version

iphone - 为什么我的 iPhone 应用程序的图标在构建后被划掉?

ios - 计算 xcode 中 1,000 个对象缓慢的百分比

ios - 在 viewWillDisappear 上显示事件指示器

iphone - NSPredicate 使用特殊字符过滤

iphone - 当我们有 xcode 时,airplay sdk 的实用程序是什么?

ios - 在核心数据中保存一个整数

ios - 为什么我的 SearchController 只匹配第一个字符?

ios - NSPredicate 和 Core Data 多表查询