Я использую NSFetchedResultsController для моего UITableView, который отображает кучу событий, хранящихся в основных данных.
Я пытаюсь сгруппировать таблицу по относительной дате (например, сегодня, завтра, на этой неделе и т. Д.). Каждое событие имеет дату начала, и я попытался создать временное свойство в сущности события под названием sectionIdentifier, которое преобразует дату в относительную дату, как указано выше, например:
- (NSString*)sectionIdentifier
{
[self willAccessValueForKey:@"sectionIdentifier"];
NSString *tmp = [self primitiveSectionIdentifier];
[self didAccessValueForKey:@"sectionIdentifier"];
if (!tmp)
{
tmp = [Utility formattedDateRelativeToNow:self.startTime];
[self setPrimitiveSectionIdentifier:tmp];
}
return tmp;
}
Проблема в том, что он, очевидно, делает это только один раз и не обновляется, если дата не изменена, чего я действительно не ожидаю. Я подумал о том, чтобы переопределить метод доступа getStartDate для обновления sectionIdentifier, хотя это кажется немного тяжелым и неэффективным, поскольку он будет выполнять это обновление каждый раз, когда я получаю доступ к этому свойству.
Любые идеи?