Заголовки разделов даты не работают - PullRequest
1 голос
/ 13 ноября 2011

У меня проблема с просмотром таблицы с разбивкой по дате.Я взял пример Apple: DateSectionTitles

Меня не волнует год.Мне нужен месяц и день.Поэтому я адаптирую свой код так:

В моем классе CoreData:

- (NSString *)sectionIdentifier {
[self willAccessValueForKey:@"sectionIdentifier"];
NSString *tmp = [self primitiveSectionIdentifier];
[self didAccessValueForKey:@"sectionIdentifier"];
NSLog(@"!Temp");
if (!tmp) {
    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDateComponents *components = [calendar components:(NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[self timeStamp]];
    tmp = [NSString stringWithFormat:@"%d", ([components month]*100) + [components day]];
    [self setPrimitiveSectionIdentifier:tmp];
}
return tmp;}

И в моем методе titleForHeaderInSection в моем основном контроллере:

NSInteger month = numericSection / 100;
NSInteger day = numericSection - (month * 100);

NSString *titleString = [NSString stringWithFormat:@"%d %d",day, month];

return titleString;

Но когдаЗапустите мое приложение У меня есть это сообщение:

CoreData: error: (NSFetchedResultsController) Раздел вернул значение nil для пути имени ключа раздела 'sectionIdentifier'.Объекты будут размещены в безымянном разделе

Знаете почему?Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 22 декабря 2013

Одной из распространенных ошибок, обычно кодирующих переходное свойство для nsmanagedobject, является то, что люди забывают также «включить» переходное свойство в файле модели данных (xcdatamodeld).

0 голосов
/ 13 ноября 2011

Логично, что это произойдет, если в этой строке вашего кода

NSDateComponents *components = [calendar components:
   (NSMonthCalendarUnit | NSDayCalendarUnit) 
   fromDate:[self timeStamp]];

[self timeStamp] возвращает неверное значение NSDate. Проверьте с NSLog заявлениями, если это так.

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