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