Ios 上次订购的Tableview部分

Ios 上次订购的Tableview部分,ios,uitableview,nsfetchedresultscontroller,Ios,Uitableview,Nsfetchedresultscontroller,如何使用NSFetchedResultsController,以便最后列出一个特定部分?我目前正在按部门对项目进行分组,并按名称进行订购: // sort NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"department" ascending:YES]; NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor allo

如何使用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方法中解决这一问题?

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

您可以使用

- (id)initWithKey:(NSString *)key ascending:(BOOL)ascending comparator:(NSComparator)cmptr 
您还定义了一个comparator方法,该方法将根据您所在部门的字母顺序返回NSComparisonResult,特定部门除外。对于这一次,您将始终返回到降级状态

这应该能奏效