2013-05-09 3 views
0

Я использую NSFetchedResultsController, и я хотел бы создать два раздела в моей таблице на основе поля даты в моей сущности. Я не хочу раздел, основанный на отдельных датах, но я хотел бы иметь один раздел, где это поле даты равно nil и один раздел, где это поле даты не равно нулю.NSFetchedResultsController создает разделы, где date is nil

Есть ли способ использовать sectionNameKeyPath для этого? Если нет, то как мне перейти к разделению моей таблицы результатов, основанной на значении nil vs non-nil?

ответ

1

Я думаю, что следующий должны работы:

  • Используйте date поле первого дескриптора сортировки.
  • Определите переходный атрибут sectionIdentifier и используйте его как sectionNameKeyPath.
  • Определите функцию получения для свойства переходного процесса, которое возвращает только «0» или «1». В простейшем случае (без кэширования), это будет выглядеть следующим образом:

    - (NSString *)sectionIdentifier 
    { 
        if (self.date == nil) 
         return @"0"; 
        else 
         return @"1"; 
    } 
    
  • Реализация пользовательских titleForHeaderInSection:

    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
        id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section]; 
        if ([[sectionInfo name] isEqualToString:@"0"]) 
         return @"Date is nil"; 
        else 
         return @"Date is not nil"; 
    } 
    
+0

Я не получил время, чтобы проверить это еще, но я не забыл о вас. Я попробую и ответу в ближайшее время. –