动态地将UITableView分成任意部分?

时间:2011-05-14 23:33:00

标签: iphone ios core-data ios4

我有一个核心数据应用程序,它显示一个自定义对象列表,每个对象代表戏剧作品。

每个show对象都有一堆属性 - 名称,徽标,开放日期,显示类型。

我可以很好地检索它们,按类型排序就好了 - 但我希望每个节目类型都是表格中自己的部分。

我提前不知道结果集中将显示多少个节目类型,所以我最初不知道应该有多少个节目。

所以我想问题是 - 我如何将结果集划分为按类型分组的部分?

目前我正在这样做:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Show" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"type" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];

// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;

1 个答案:

答案 0 :(得分:1)

我会编写numberOfSections方法,以便动态检查类型的数量。然后,只要新类型滚入,只需执行[tableView reloadData];