如何从两个不同的数据源填充UITableViewController?(iPhone)
我使用核心数据来存储数据,我有两个实体,称为火车和飞机。我把所有的东西都放进了两个不同的NSMUTABLE数组,一个是火车,一个是飞机。每个类都有NSDate属性,我想只在一个UITableViewController中显示数组中按日期排序的所有项。此外,我还定义了自己的tableCells类来处理信息如何从两个不同的数据源填充UITableViewController?(iPhone),uitableview,Uitableview,我使用核心数据来存储数据,我有两个实体,称为火车和飞机。我把所有的东西都放进了两个不同的NSMUTABLE数组,一个是火车,一个是飞机。每个类都有NSDate属性,我想只在一个UITableViewController中显示数组中按日期排序的所有项。此外,我还定义了自己的tableCells类来处理信息 我的问题是如何在单个UITableViewController中按日期排序显示不同的分类对象 我没有CoreDate方面的经验,但可能NSFetchedResultsController类适合您
我的问题是如何在单个UITableViewController中按日期排序显示不同的分类对象 我没有CoreDate方面的经验,但可能NSFetchedResultsController类适合您的任务 如果您不想在单独的表部分中显示不同的实体,我认为混合它们的最简单方法是使用单个数组来存储和处理数据 为了简化操作,您可以使用实体通用的方法(例如日期属性)声明协议,并使实体符合该协议:
@protocol MyEntityProtocol
- (NSDate*) date;
@end
排序:您可以使用SorterDarrayUsingFunction:context:function对数组进行排序
NSInteger entityDateSort(id<MyEntityProtocol> obj1, id<MyEntityProtocol> obj2, void *context){
return [[obj1 date] compare:[obj2 date]];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
id ent = [dataArray objectAtIndex:indexPath.row];
UITableViewCell* cell = nil;
if ([ent isKindOfClass:[Entity1 class]]){
// create and/or setup cell for entity1
}
if ([ent isKindOfClass:[Entity2 class]]){
// create and/or setup cell for entity2
}
return cell;
}