我正在创建一个航班跟踪应用程序,它是从核心数据加载的桌面视图,如果一个航班的到达机场和另一个航班的出发机场相同,我需要出现一行,并且此表视图显示时间差异。对于每个航班,我都有到达时间,出发时间,到达航班和出发机场的核心数据属性。我不确定如何以一种利用这些属性的方式加载它。一旦我加载了它们,我应该查看哪些方法?
航班将全部与旅程编号相关联,旅行编号是另一个核心数据属性,因此只需在相关旅程之间进行此逻辑。例如,如果1号航班从机场1到机场2有1号航班,从2号机场到2号机场有2号航班,那么我需要从1号航班到达2号航班和2号航班之间的时间。
任何帮助或指示表示赞赏。 这是我在viewdidappear
中加载核心数据属性的代码NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Device"];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
// Set descriptors
[fetchRequest setSortDescriptors:sortDescriptors];
self.devices = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
以下是tableview单元格在cellForRowAtIndexPath
中的显示方式static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
NSManagedObject *device = [self.devices objectAtIndex:indexPath.row];
[cell.textLabel setText:[NSString stringWithFormat:@"%@ %@", [device valueForKey:@"name"], [device valueForKey:@"version"]]];
[cell.detailTextLabel setText:[device valueForKey:@"company"]];
thearray=[device valueForKey:@"name"];
答案 0 :(得分:0)
使用您的旅行号码运行获取以获取旅行中的所有航班。根据出发日期对航班进行排序。
现在,您可以遍历fetch返回的数组,并比较每对项目,看看一个项目的目的地是否与下一个项目的出发点相同。
您现在决定做什么在很大程度上取决于您如何使用数据填充表格视图(使用FRC)以及应如何显示...如果您正在使用一系列航班然后你可以在数组中添加一个新项目,这将导致你创建一个不同类型的单元格。如果您正在使用FRC,那么事情可能会很有趣。在FRC案例中,最好不要使用额外的行,而是使用更高的单元格,其中包含有关连接时间的其他信息。