Как использовать NSFetchedResultsController для генерации разделов после дат - PullRequest
2 голосов
/ 23 октября 2011

Я представляю список управляемых объектов, каждый из которых имеет свойство timeStamp.Я хочу отсортировать список в хронологическом порядке, используя свойство timeStamp, которое я делаю с NSSortDescriptor.Но я также хочу создать разделы, основанные на целых датах (один раздел на каждый день)

Следующее даст мне один раздел, основанный на вторых различиях, что слишком много разделов:

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"timeStamp" cacheName:@"PatientDetailViewCache"];

Есть ли способ сгенерировать разделы из свойства timeStamp с помощью NSFetchedResultsController, отформатированные как yy-MM-dd?

Спасибо за любую помощь

Christian

1 Ответ

2 голосов
/ 24 октября 2011

Самый простой способ заключается в том, чтобы на вашем подклассе NSManagedObject создавал свойство для форматированной даты и сортировал, используя это свойство. На SO много вопросов с похожими вопросами.

Установка заголовков UITableView из NSFetchedResultsController

NSFetchedResultsController с датой в виде sectionNameKeyPath

Но создайте NSDateFormater для всего класса в awakeFromFetch: примерно так:

-(void)awakeFromFetch{
    dateFormater = [[NSDateFormatter alloc] init];
    [dateFormater setDateFormat:@"yy-MM-dd"];
    [super awakeFromFetch];
}

затем в методе доступа для этого свойства класса сделайте что-то вроде этого:

-(NSString*)myprop{
    if(myprop==nil){
        myprop = [dateFormat stringFromDate:self.OTHERDATE];
    }
    return myprop;
}

Тогда ваш выбранный контроллер результатов:

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"myprop" cacheName:@"PatientDetailViewCache"];

Затем он вернет отформатированную дату и отсортирует по ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...