Как предикат для первого появления в fetchRequest - PullRequest
0 голосов
/ 17 февраля 2012

Я пытаюсь найти способ предсказать первое вхождение события в данный день. Так, скажем, событие происходит несколько раз в течение дня (диапазон 1-16), я хочу, чтобы оно только возвращало первое вхождение, а затем искало следующее первое вхождение на следующий день.

1 Ответ

1 голос
/ 17 февраля 2012

Вы не сможете сделать это с одним fetchRequest;вам нужно будет сделать два.

Для каждого дня просто используйте предикат для ограничения вхождений после начала этого дня, сортируйте по возрастанию даты и выбирайте только один элемент:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"YourObject" inManagedObjectContext:context];
request.predicate = [NSPredicate predicateWithFormat:@"date > %@", beginningOfDay];
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]];
request.fetchLimit = 1;

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

...