我有一個基於SQL的核心數據託管文檔,並使用由NSFetchedResultsController支持的tableview呈現其內容。數據確實被顯示出來並且全部都在那裏,但即使我真的試圖對其進行排序,它也不會被排序。以下是我如何設置提取的結果控制器:NSFetchedResultsController不排序
- (void)setupFetchedResultsController // attaches an NSFetchRequest to this UITableViewController
{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Notebook"];
NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:descriptor];
// no predicate because we want ALL the notebooks
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.dbContext
sectionNameKeyPath:nil
cacheName:nil];
}
name是字符串類型的屬性。我也嘗試過NSDate類型的另一個屬性。它們都不起作用 - 即使在應用程序啓動之前立即顯示錶格視圖,也不會對數據進行排序。
想法?
你什麼時候調用'-performFetch:'?那次調用之後,您是否嘗試過打印出結果,以確保問題不在控制器和表格視圖之間? – paulmelnikow
performFetch是作爲setFetchedResultsController方法的一部分執行的,也就是self.fetchedRestultsController =的一部分= ...這就是蘋果的樣板代碼是如何做到的。至於印刷 - 我會盡力報道。 – user1258240
你必須繼承嗎? – paulmelnikow