Одна из опций, которую я использовал, когда мой sectionNameKeyPath должен ссылаться на что-то нетривиальное, - это добавление нового атрибута в мою модель и пометить его как Transient.
Затем вы можете добавить категорию к управляемому объекту, у которого есть метод получения, который вычисляет поле на основе ваших правил.
@implementation MyObject (SectionKeyPathAdditions)
-(NSDate *)toManyAttribute1Date // This is the new transient attribute name
{
NSDate *dynamicReturnDate = [NSDate date];
// use app logic to grab the subset of valid dates from attribute1
return dynamicReturnDate;
}