2011-02-23 86 views
3

在我的CoreData模型中,我有一個事件實體,它與特定的活動實體配對。目前,我有事件之間的可選關係活動調用最新活動。我現在正在尋找專門爲NextActivity創建一個新的關係,但意識到不可能將兩個關係的逆設置爲同一個實體。向同一實體分配兩個CoreData關係(具有相反的關係)

我明白爲什麼這是不可能的,因爲SQlite支持存儲,但我想知道如何去做。經過一番谷歌搜索我見過的最好的解決方案如下:設置一個一對多的關係,稱爲活動在我的事件實體,然後設置輔助函數來獲取並返回最新和下一個活動。

這很好,因爲它允許我將多個活動附加到未來的事件中,但我對於在何處以及如何實現這些輔助函數感到困惑。

  • 最新活動表示當前日期
  • 下一個活動代表之前的最近日期:下和最近發生的事件將通過以下邏輯活動實體內比較一個NSDate的方式來獲取下一個活動的日期大於

但是,爲這些實體搜索CoreData的最簡潔方法是什麼?我應該在哪裏執行該搜索?

回答

3

當你說你「意識到不可能將兩個關係的反向設置爲同一個實體時,我可能不會理解你」。考慮這一模式:

enter image description here

很顯然,這是可能有兩個實體之間的多個雙向的關係。在這種情況下,有三個雙向關係:

  1. 事件的活動< - >>活動的事件(這是對多從比賽的角度來看)
  2. 事件的lastActivity < - >活動的inverseLastActivity
  3. 事件的nextActivity < - >活動的inverseNextActivity

當然,你仍然需要保持lastActivity和nextActivity最新的 - 也許,你得出的,在現實的建議時間可能更加健壯。

我有揮之不去的擔心,我誤解了你的問題...

相關問題