0

我想排序我的數據在我的TableView。我有UIButtons IBAction調用排序。
我已經創建了一個包含sortKey的字符串。我設置了鍵並再次調用fetchedResultsController來對tableview進行排序。IBAction排序NSFetchedResultsController

問題是,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

所以,你的意思是,你已經取得了結果,但他們沒有排序。一旦用戶點擊按鈕,他們應該被排序,並且tableView應該顯示相同的結果,但是以排序的方式。對? – Canopus 2012-02-06 21:03:58

+0

準確。我所做的是,在IBACtion中,我將__fetchedResultsController設置爲零,因此排序正在工作(fetchedResultsController方法進入),但這不是正確的方法。 – brush51 2012-02-07 09:44:33

回答

1

它在哪裏,你讓表視圖瞭解這些變化?您需要重新載入您的表視圖實例的數據[tableView reloadData];

當您將__fetchedResultsController設置爲nil時,它不能更新UITable視圖的任何更改,因爲它不在範圍內。

相關問題