现在我有一个UITableViewController
,它使用Artist
显示一组NSFetchedResultsController
个对象(按字母顺序排列)。当您点击该列表中的艺术家时,会推送第二个UITableViewController
并显示artist.shows
个对象,也会按部分排序(按日期)。
现在我正在“手动”对第二个数据源(artist.shows)进行排序,使用NSSortDescriptor
和for()
循环来确定表视图部分的位置(每个部分一个部分)月)。
这是正确的方法吗?创建第二个NSFetchedResultsController
以对数据进行排序更有意义,尽管它基本上是在artist.shows
中获取已有的数据吗?
答案 0 :(得分:2)
您绝对应该使用第二个获取的结果控制器。它可以与第一个共享managedObjectContext,允许访问该上下文中已经出现故障的对象。
您需要适当地为控制器构建谓词/排序描述符,例如:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"artist.name == %@" argumentsArray:[NSArray arrayWithObject:selectedArtist.name]];
您也可以通过实际的艺术家对象对其进行搜索,但这应该可以为您提供想法。