Я работаю над приложением для Mac и изо всех сил пытаюсь заставить работать фильтр предикатов. Есть ли разница в том, как использовать предикаты fetch vs filter для NSArrayController?
Я использую Core Data для хранения своих записей, и они отлично отображаются в моем табличном представлении. Когда я использую предикат выборки, он правильно отображает записи. Когда я использую предикат фильтра, он, кажется, ничего не делает. Чтобы быть ясным - я использую один предикат за раз, но хотел показать оба в своем коде.
entryController = [[NSArrayController alloc] init];
[entryController setManagedObjectContext:[self managedObjectContext]];
[entryController setAutomaticallyPreparesContent:YES];
[entryController setAutomaticallyRearrangesObjects:YES];
[entryController setClearsFilterPredicateOnInsertion:NO];
[entryController setEntityName:@"Entry"];
// only displays entries where deleted is not 1
[entryController setFetchPredicate:[NSPredicate predicateWithFormat:@"deleted != %@", [NSNumber numberWithInt:1]]];
// shows all entries regardless of the deleted status
[entryController setFilterPredicate:[NSPredicate predicateWithFormat:@"deleted != %@", [NSNumber numberWithInt:1]]];
if ([entryController fetchWithRequest:nil merge:YES error:&error] == NO) {
DLog(@"Error fetching entries: %@", error.description);
} else {
DLog(@"Found %lu entries.", [[entryController arrangedObjects] count]);
}