NSFetchedResultsControllerを利用する

NSFetchedResultsControllerはCore DataとUITableViewを同期させるためのControllerです。

初期化

MagicalRecordから利用する場合は、MR_fetchAllGroupedByなんかを利用します。

MyNSManagedClass.MR_fetchAllGroupedBy("groupingColumn", withPredicate: nil,
  sortedBy: "sortColumn", ascending: false, delegate: self)

他に、MR_fetchAllSortedByもあります。

グループ化した際のSectionを取得する

// Sectionの配列
fetchedResultsController.sections
// 各セクションの名前
fetchedResultsController.sections![index].name
// 各セクションに含まれる項目数 
fetchedResultsController.sections![index].numberOfObjects

sectionsの型は[AnyObject]?ですが[NSFetchedResultsSectionInfo]にダウンキャストできます。

項目を取得する

fetchedResultsController.objectAtIndexPath(indexPath)

引数に取るindexPathはNSIndexPath型です。

全項目の要素数を取得する

fetchedResultsController.fetchedObjects.count