Я не думаю, что предикат будет делать то, что вы просите здесь. Вместо этого вы можете выбрать одну запись с дескриптором сортировки, установленным для сортировки дат в порядке убывания. Вам необходимо изменить запрос на получение, включив в него следующее:
NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:dateSort]];
[fetchRequest setFetchLimit:1];
Это должно дать вам объект Staff с самым последним атрибутом даты. Обратите внимание, что если вы используете хранилище SQLite, то сортировка выполняется на уровне SQLite и извлекается только один результат.