我如何使用NSFetchedResultsController,以便最后列出一个特定部分?我目前按部门对项目进行分组,并按名称排序:
// sort
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"department" ascending:YES];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"dateAdded" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, sortDescriptor2, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// fetch results, sectioned by department
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:list.managedObjectContext sectionNameKeyPath:@"department" cacheName:nil];
但是我希望最后一个特定的部门能够返回。我可以使用排序描述符的组合来完成此操作,还是应该尝试在cellForIndexPath方法中进行解决?
答案 0 :(得分:0)
如何将数据库中的标志放在需要最后一个(最后== 1,默认为0)的数据库中,并使用此标志作为主排序描述符?
答案 1 :(得分:0)
你可以使用
- (id)initWithKey:(NSString *)key ascending:(BOOL)ascending comparator:(NSComparator)cmptr
并定义一个比较器方法,该方法将根据您的任何部门的字母顺序返回NSComparisonResult,但不包括特定部门。对于这个,你将永远返回NSOrderedDescending。
应该这样做。