Uitableview 对iAction上的NSFetchedResultsController进行排序

Uitableview 对iAction上的NSFetchedResultsController进行排序,uitableview,sorting,nsfetchedresultscontroller,nssortdescriptor,Uitableview,Sorting,Nsfetchedresultscontroller,Nssortdescriptor,我想在Tableview中对数据进行排序。我有带iAction的UIButtons来调用排序。 我创建了一个包含sortKey的字符串。我正在设置键并再次调用fetchedResultsController,以对tableview进行排序 问题是,未调用fetchedResultsController方法,排序也不起作用。 这是我的密码: - (IBAction) actionSortCardColor:(id) sender { XLog(@""); sortString =

我想在Tableview中对数据进行排序。我有带iAction的UIButtons来调用排序。
我创建了一个包含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];

[...]
}  

您在哪里让表视图知道这些更改?您需要重新加载表视图实例的数据
[tableView reloadData]


当您将uu fetchedResultsController设置为nil时,它无法使用任何更改更新UITable视图,因为它不在范围内。

因此,您的意思是,您已经获取了结果,但它们没有排序。一旦用户点击按钮,他们应该得到排序,并且tableView应该以排序的方式显示相同的结果。对吧?没错。我所做的是,在iAction中,我将uu fetchedResultsController ivar设置为nil,因此排序工作正常(输入fetchedResultsController方法),但这不是正确的方法。