Ios 上次订购的Tableview部分
如何使用NSFetchedResultsController,以便最后列出一个特定部分?我目前正在按部门对项目进行分组,并按名称进行订购:Ios 上次订购的Tableview部分,ios,uitableview,nsfetchedresultscontroller,Ios,Uitableview,Nsfetchedresultscontroller,如何使用NSFetchedResultsController,以便最后列出一个特定部分?我目前正在按部门对项目进行分组,并按名称进行订购: // sort NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"department" ascending:YES]; NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor allo
// 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,特定部门除外。对于这一次,您将始终返回到降级状态
这应该能奏效