2013-06-25 17 views
1

我看了一些示例代碼和蘋果文檔,它都出現了fetchedResultsController總是有一個節數。如何使NSFetchedResultsController返回更多節?

如何使它返回兩個部分?

原因,真正的問題是,我做的是iOS待辦事項應用程序。 完成/待辦工作清單,保存在覈心數據中,分兩部分顯示在UITableview

但只有一個fetchedResultsController,如何讓它支持兩個部分?

這是官方示例代碼,我不知道如何改變這一點。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    NSInteger count = [[fetchedResultsController sections] count]; 

    if (count == 0) { 
     count = 1; 
    } 

    return count; 
} 

回答

4

構建FetchedResultsController時需要提供sectionNameKeyPath。在你的情況下,如果你在你的實體上有這個屬性,可能是finished

Documentation

更新:

你會初始化一個NSFetchedResultsController這樣的:

NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:manangedObjectContext sectionNameKeyPath:@"category" cacheName:nil]; 

確保在您的fetchRequestsortDescriptors提供相同的順序您sectionNameKeyPath一樣。

您可以訪問部分的名字是這樣的:

id<NSFetchedResultsSectionInfo> sectionInfo = fetchedResultsController.sections[section]; 
NSString *sectionTitle = [sectionInfo name]; 
+2

參數的正確名稱是'sectionNameKeyPath'。不要忘記使用相同的密鑰添加(第一個)排序描述符。 –

+0

更正了這個錯字。 – Karl

+0

你能舉個例子嗎? – Jacob

相關問題