Секция Tableview заказана последней - PullRequest
0 голосов
/ 29 января 2012

Как бы я использовал 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 голосов
/ 29 января 2012

вы можете использовать

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

и определить метод сравнения, который будет возвращать NSComparisonResult в соответствии с алфавитным порядком для любого вашего отдела, кроме конкретного.для этого вы всегда будете возвращать NSOrderedDescending.

, что должно сработать.

0 голосов
/ 29 января 2012

Как насчет размещения в базе данных флага, который должен быть последним (last == 1, по умолчанию 0), и использования этого флага в качестве основного дескриптора сортировки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...