0

我有兩個具有彼此多對多關係的實體的核心數據模型。NSFetchedResultsController和NSPredicate以及部分名稱

例如,

Conference <<---->> Speaker 

一個會議可以有許多發言者,以及一位發言者可在許多會議。

我試圖使用NSFetchedResultsController fetchRequest的主要實體是揚聲器

儘管它確實列出了所有揚聲器,但我試圖將該部分作爲「會議」名稱並列出該部分中的所有揚聲器。我想要它,以便作爲演講者的名字「約翰」將出現在兩個部分。這意味着他是兩次會議的發言人。

這是我使用的sectionNameKeyPath:@"conferences.Name"

NSFetchedResultsController *aFetchedResultsController = [[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"conferences.Name" cacheName:@"fCache"] autorelease]; 

這有點不工作,我得到{TedEx}作爲該部分的標題時,我使用[sectionInfo name]

另一個問題是,如果我一個發言者出現在一個部分(會議)中,它不會出現在另一個部分(即使該部分(會議)具有該發言者對象)。

這可能是因爲我將sectionName看作一組組合的會議。 TedEx, SXSW作爲單個部分。

一些目標應該如何選擇sectionNameKeypath以僅提取一個會議並列出每個會議中的所有發言人。也許我應該設置某種謂詞?

林有點在這裏綁定,是方法有問題嗎?我已經閱讀了關於Predicates的內容,但是如果你的新核心數據很難理解。

回答

0

這與您正在考慮的方式有點不同,而且我不確定是否有更好的方法可以通過FRC & sectionNameKeyPath實現,就像您想要的一樣,但也許會這樣做工作:

  1. 而是取音箱,只是做一個正常的NSFetchRequest獲得 一個NSArray稱爲conferences。您可以通過 conferenceName或date或任何您需要的排序。
  2. 然後,對於您的表格視圖,將部分的數量設置爲[conferences count]
  3. 對於每個部分中的行數,獲取該部分的會議對象[conferences objectAtIndex:section],並返回該會議的發言人數。
  4. 要填充單元格的數據,僅僅靠呼籲得到議長對象:[[conferences objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
+0

感謝您的回答馬克,但我是NSFetchedResultsController專門詢問..我最好的Cuz的任何更改將反映在沒有任何努力該表在哪裏,因爲我不得不處理所有的提取請求。但我意識到在NSFetchResultsController中沒有辦法做到這一點 – user134611

相關問題