I have a bookingDate attribute, and I am trying to apply two different conditions for fetching based on bookingDate.
NSPredicate *confirmBookingPredicate = [NSPredicate predicateWithFormat:@"bookingDate > %@ AND ANY cab.confirmationStatus == 1 OR cab.confirmationStatus == 0", [NSDate date]];
NSPredicate *cancelBookingPredicate = [NSPredicate predicateWithFormat:@"bookingDate < %@ AND bookingDate >= %@ AND ANY cab.confirmationStatus == 1", [NSDate date], [NSDate dateWithNoTime:[[NSDate date] dateByAddingTimeInterval:MINUSFORTYFIVEDAYS]]];
NSPredicate *nilPredicate = [NSPredicate predicateWithFormat:@"[email protected] != 0"];
NSPredicate *DatePredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[confirmBookingPredicate, cancelBookingPredicate, nilPredicate]];
NSFetchedResultsController *fetchedResultsController;
NSFetchRequest *fetchRequest = [Trip MR_requestAllSortedBy:@"bookingDate" ascending:YES];
[fetchRequest setFetchBatchSize:10];
[fetchRequest setPredicate:DatePredicate];
[fetchRequest setReturnsObjectsAsFaults:NO];
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_defaultContext sectionNameKeyPath:@"bookingId" cacheName:nil];
But its not functioning as expected. I don't understand why. Kindly guide.