我想在Tableview中对数据进行排序。我有带有IBAction的UIButton来调用这种类型 我创建了一个包含sortKey的字符串。我正在设置密钥并再次调用fetchedResultsController,以对tableview进行排序。
问题是,没有调用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];
[...]
}
答案 0 :(得分:1)
您让表格视图了解这些更改的位置是什么?您需要重新加载表视图实例[tableView reloadData];
当您将__fetchedResultsController设置为nil时,它无法使用任何更改来更新UITable视图,因为它不在范围内。