2012-03-06 70 views
2

我的應用程序有一個時間表列表。如何使用NSFetchedResultsController和自定義節?

  • 第1部分:醫生
  • 第2部分:個人
  • 第3部分:過期時間表

我目前使用sectionNameKeyPath:@"source",這是無論是醫生還是個人,問題是過期的部分。這可以通過該實體中的endDate屬性確定。

NSFetchedResultsController *aFetchedResultsController = 
    [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
             managedObjectContext:managedObjectContext 
             sectionNameKeyPath:@"source" cacheName:@"Root"]; 

那麼,我怎樣才能繼續使用NSFetchedResultsController,但不知何故使用這三個部分?

回答

3

在您的數據模型中,在您的Schedule實體上創建一個名爲「sectionName」的新transient屬性。然後在Schedule類-(NSString*)sectionName上寫一個方法,返回正確的字符串。最後使用@"sectionName"作爲您獲取結果控制器的節名稱鍵路徑。

不要忘記,在您的獲​​取請求中,項目必須已經按照正確的順序排序才能分組到各個部分 - 這是NSFetchedResultsController的一個要求。

+0

因此,爲了將過期的條目移動到過期的部分,我需要在創建NSFetchedResultsController之前更改viewDidLoad上實體的屬性? – Pieter 2012-03-06 18:58:32

相關問題