我正在开发一个核心数据应用程序。我有一个主表,显示具有不同状态的订单:新的、已接受的、已交付的等。
我遇到的问题是我需要按不同的标准对每个部分进行排序。例如:
- 新订单需要按最旧的排序。
- 接受的订单需要按最快的时间排序才能在顶部交付。
- 交付的订单需要按最新排序。
所以这是我现在获取结果时的代码:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"CDOrder"];
request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"orderPosition" ascending:YES],[NSSortDescriptor sortDescriptorWithKey:@"createdDate" ascending:NO]];
User* user = [User getInstance];
NSDate *TwelveHoursAgo = [NSDate dateWithTimeIntervalSinceNow:-3600 * 12];
request.predicate = [NSPredicate predicateWithFormat:@"(servicePersonId == %@) AND (createdDate >= %@)", [NSNumber numberWithLong:user.userId], TwelveHoursAgo];
ordersTableViewController.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:super.managedObjectContext sectionNameKeyPath:@"orderPosition" cacheName:nil];
正如您所看到的,这是根据所有订单制作部分"orderPosition"
并对所有订单进行排序"createdDate"
。但我需要订购某些订单"deliverDate"
谢谢