【发布时间】:2013-10-30 23:42:58
【问题描述】:
我正在开发一个核心数据应用程序。我有一个主表,显示具有不同状态的订单:新、已接受、已交付等。
我遇到的问题是我需要按照不同的标准对每个部分进行排序。例如:
- 新订单需要按最旧的排序。
- 接受的订单需要按最快的顺序排序,才能在最上面交付。
- 交付的订单需要按最新排序。
这是我现在获取结果时的代码:
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"订购某些订单
谢谢
【问题讨论】:
标签: ios objective-c uitableview core-data nsfetchedresultscontroller