сортировать NSFetchedResultsController на IBAction - PullRequest
0 голосов
/ 06 февраля 2012

Я хочу отсортировать мои данные в моем табличном представлении.У меня есть UIButtons с IBAction для вызова сортировки.
Я создал строку, которая содержит sortKey.Я устанавливаю ключ и снова вызываю fetchedResultsController, чтобы отсортировать таблицу.

Проблема в том, что метод fetchedResultsController не вызывается и сортировка не работает.
Вот мой код:

- (IBAction) actionSortCardColor:(id) sender {
    XLog(@"");
    sortString = @"colorOrder";
    [self fetchedResultsController];

    [self actionRemoveSortView:sender];
}    

Вот мой метод fetchedResultsController:

- (NSFetchedResultsController *)fetchedResultsController
{

[...]


NSPredicate *inboxPred = [NSPredicate predicateWithFormat:@"archived == 0"];

// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:20];
[fetchRequest setPredicate:inboxPred];

XLog(@"sortString: %@", sortString);
if (sortString == nil) {
    sortString = [[NSString alloc] initWithString:@"sortingOrder"];
}

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"setTitle" ascending:YES] autorelease];
NSSortDescriptor *sortDescriptor2 = [[[NSSortDescriptor alloc] initWithKey:sortString ascending:YES] autorelease];
NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortDescriptor, sortDescriptor2, nil] autorelease];

[fetchRequest setSortDescriptors:sortDescriptors];

[...]
}  

1 Ответ

1 голос
/ 12 февраля 2012

Где вы сообщили табличному представлению об этих изменениях? Вам нужно будет перезагрузить данные для вашего экземпляра табличного представления [tableView reloadData];

Когда вы устанавливаете __fetchedResultsController равным nil, он не может обновлять представление UITable с любыми изменениями, потому что оно находится вне области действия.

...