NSFetchedResultsController和子UITableViewController

时间:2011-06-19 03:24:29

标签: iphone ios core-data

现在我有一个UITableViewController,它使用Artist显示一组NSFetchedResultsController个对象(按字母顺序排列)。当您点击该列表中的艺术家时,会推送第二个UITableViewController并显示artist.shows个对象,也会按部分排序(按日期)。

现在我正在“手动”对第二个数据源(artist.shows)进行排序,使用NSSortDescriptorfor()循环来确定表视图部分的位置(每个部分一个部分)月)。

这是正确的方法吗?创建第二个NSFetchedResultsController以对数据进行排序更有意义,尽管它基本上是在artist.shows中获取已有的数据吗?

1 个答案:

答案 0 :(得分:2)

您绝对应该使用第二个获取的结果控制器。它可以与第一个共享managedObjectContext,允许访问该上下文中已经出现故障的对象。

您需要适当地为控制器构建谓词/排序描述符,例如:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"artist.name == %@" argumentsArray:[NSArray arrayWithObject:selectedArtist.name]];

您也可以通过实际的艺术家对象对其进行搜索,但这应该可以为您提供想法。