我正在Friend
从我的数据存储中拉出排序的对象,这些对象与作为驱动 a 的User
一部分的给定匹配,如下所示;NSFetchedResultsController
UICollectionView
- (NSFetchedResultsController *)fetchedFriendsResultsController
{
if (_fetchedFriendsResultsController != nil) {
return _fetchedFriendsResultsController;
}
//Get the correct array of friends for that user
NSFetchRequest *fetchRequestItems = [[NSFetchRequest alloc] init];
NSEntityDescription *entityItem = [NSEntityDescription entityForName:@"Friend" inManagedObjectContext:self.managedObjectContext];
[fetchRequestItems setEntity:entityItem];
User* myUser = [DataBaseManager getCurrentUser:managedObjectContext];
[fetchRequestItems setPredicate:[NSPredicate predicateWithFormat:@"user == %@", myUser]];
//Sort by name descending
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequestItems setSortDescriptors:sortDescriptors];
NSFetchedResultsController *fetchedItemsResultsController =[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequestItems managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
_fetchedFriendsResultsController = fetchedItemsResultsController;
return _fetchedFriendsResultsController;
}
这很好用,所有朋友都按字母降序排序。
现在我想获取一个特定的朋友对象,它的名称不是按字母顺序排列的优先顺序,并将它们放在返回的所有其他朋友项目之前。在 'name' == @"SPECIFIC_NAME" 的地方为他们做一个特例。
我是否需要将此边缘情况添加到排序描述符或谓词中?你会怎么做?
谢谢