Tableview部分最后排序

时间:2012-01-28 20:01:29

标签: ios uitableview nsfetchedresultscontroller

我如何使用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方法中进行解决?

2 个答案:

答案 0 :(得分:0)

如何将数据库中的标志放在需要最后一个(最后== 1,默认为0)的数据库中,并使用此标志作为主排序描述符?

答案 1 :(得分:0)

你可以使用

- (id)initWithKey:(NSString *)key ascending:(BOOL)ascending comparator:(NSComparator)cmptr 

并定义一个比较器方法,该方法将根据您的任何部门的字母顺序返回NSComparisonResult,但不包括特定部门。对于这个,你将永远返回NSOrderedDescending。

应该这样做。