Я разрабатываю приложение с помощью UICollectionView
.
Это коллекция событий, упорядоченных по дате. Я использую NSFetchedResultsController
для извлечения данных из БД. Но мне нужно получить текущие и будущие события + 2 прошлых события. Для NSFetchRequest
Я использую NSCompoundPredicate
NSFetchedResultsController с сложным предикатом
NSPredicate *nextPredicate = [NSPredicate predicateWithFormat: @"startAt >= %@", [NSDate date]];
NSPredicate *previousPredicate = [NSPredicate predicateWithFormat:@"startAt < %@", [NSDate date]];
NSCompoundPredicate *resultPredicate = [NSCompoundPredicate andPredicateWithSubpredicates: @[nextPredicate, previuosPredicate]];
fetchRequest.predicate = resultPredicate;
И я понятия не имею, как ограничить previousPredicate
получить только 2 вещи.
Вы можете использовать 'setFetchLimit' ограничить количество возвращаемых элементов, но это работает по всему запросу, так что вы, возможно, придешься Посмотрите на расщепление запросов и как-то расчесывайте результаты. Также вам нужно добавить 'NSSortDescriptor', чтобы убедиться, что у вас есть 2 ближайших к сегодняшнему дню – Flexicoder