Je crée un NSPredicate en utilisant le code ci-dessous pour une application iPhone. La consignation indique que le préfixe est: emplacement CONTIENT "tête" ET forme CONTIENT "ovale" ET texture CONTIENT "bosselé" ET couleur CONTIENT "rouge"NSCompoundPredicate ne correspond pas
Je n'ai aucun résultat. Si je limite le prédicat à un seul élément, cela fonctionnera, plus d'un échec.
Quelqu'un peut-il me dire pourquoi?
Un grand merci
NSMutableArray *subPredicates = [[NSMutableArray alloc] init];
for (Ditem in self.tableDataSource) {
NSString *Title = [Ditem valueForKey:@"Title"];
NSString *Value = [Ditem valueForKey:@"Value"];
if([[Value lowercaseString] isEqualToString: @"all"]){
Value = @"";
}
else{
NSPredicate *p = [NSComparisonPredicate predicateWithLeftExpression:[NSExpression expressionForKeyPath:[Title lowercaseString]] rightExpression:[NSExpression expressionForConstantValue:[Value lowercaseString]] modifier:NSDirectPredicateModifier type:NSContainsPredicateOperatorType options:0];
[subPredicates addObject:p];
}
}
NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:subPredicates];
NSLog(@"predicate: %@", predicate);[self.fetchedResultsController.fetchRequest setPredicate:predicate];
Pour ajouter un peu plus d'informations. Ce que je suis après serait le même que SELECT * FROM Table WHERE (emplacement LIKE '% head%') ET (forme LIKE '% oval%') ET (texture LIKE '% bumpy%') ET (couleur LIKE '% red% ') – BigBadOwl