У меня есть супер сущность базовых данных под названием Geography, которая имеет свойства
Geography: NSManagedObject {
NSString: name,
NSString: id,
}
это ее подклассы, как показано ниже
State: Geography {
}
MSA: Geography {
}
Territory: Geography {
NSString: formularyTemplate
}
self.entityName = @"Geography";
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController == nil && self.entityName && self.filterKey) {
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:self.entityName];
fetchRequest.predicate = [self filterPredicate];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:self.filterKey ascending:YES];
fetchRequest.sortDescriptors = @[sortDescriptor];
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.context sectionNameKeyPath:nil cacheName:nil];
}
return _fetchedResultsController;
}
я хочу, чтобы предикат получал все географические данные (означает состояние, MSA, Территория), но территории должны быть отфильтрованы на основе определенного идентификатора, я не хочу, чтобы все территории
NSMutableArray *predicates = [NSMutableArray new];
NSPredicate *filterTextPredicate = [NSPredicate predicateWithFormat:@"%K contains[c] %@", self.filterKey, trimmedFilterText];
NSPredicate *territoryPredicate = [NSPredicate predicateWithFormat:@"(formularyTemplate != nil) && formularyTemplate == %@", @"34"];
[predicates addObject: filterTextPredicate];
[predicates addObject: territoryPredicate];
[NSCompoundPredicate andPredicateWithSubpredicates:predicates];
Но это не работает.