2012-05-09 67 views
0

我有4個UITableView,代表了我的UITabBar中的4個選項卡。所以我有一個獨特的自定義TableViewController,它根據它必須顯示的實體(在CoreData上)來控制每個屏幕。 爲了從CoreData中獲取元素,我使用了NSFetchedResultsController。2個實體合併2屏幕

但我的問題是,出於市場營銷的原因,我必須合併2個屏幕,這意味着在同一個屏幕上顯示2個實體。所以我必須從2個不同的實體獲取元素。我也有一個抽象實體「元素」,它是一個SuperClass,我在我的TableViewController中用來抽象地控制每個實體。

什麼是最佳解決方案?

  • 我一定要重寫我的模型合併這些實體2(這是一個問題,因爲2個實體都有點不同)
  • 我可以告訴我的NSFetchedResultsController獲取2個實體?怎麼樣 ?
  • 我可以告訴我的NSFetchedResultsController獲取元素實體,然後預測這些實體?怎麼樣 ?

預先感謝您!

回答

0

我終於找到了一個我沒有提出的解決方案。

我已經添加了一個新的抽象實體,它是我想要合併但是也是「元素」子元素的超類。

所以我的ElementListViewController仍然顯示「元素」,我可以顯示我的屏幕合併的實體。

我現在正在將舊模型遷移到新模型。

可能這篇文章是有幫助的第一天開始...

0

這三者中最好的解決方案是使用正確的謂詞獲取Element實體。 NSfetchRequest只能獲取一個實體..我也會考慮一種不同的方法來滿足您的市場需求。你可以執行兩個不同的提取,並將結果合併。

+0

對於第一種解決方案,你怎麼告訴你的謂詞只取SubElementA和SubElementB?謂詞中有「kindOf」嗎? – THClem

+0

不是我所知道的,但由於實體是不同的,你可以利用它來區分它們。 –