NSPredicate avec Plusieurs paramètres
Bonjour Besoin d'aide avec le prédicat. Le problème est que je veux avoir une fonction qui va chercher dans la base de données dépend de plusieurs valeurs qu'il reçoit, mais les valeurs ne sont pas toujours exister, ça veut dire que j'ai créer plusieurs prédicats?
Code ci-dessous
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"brand_id LIKE %@ AND brand_id LIKE %@ AND brand_id LIKE %@ AND brand_id LIKE %@ AND brand_id LIKE %@ AND item_category LIKE %@ AND item_make LIKE %@ AND item_gender LIKE %@ || item_price>%@ || item_price<%@",
brand_one, brand_two, brand_three, brand_four, brand_five, categoryString, makeString, genderString,[NSNumber numberWithInt:price_bottom],[NSNumber numberWithInt:price_top]];
brand_one, brand_two et etc il existe parfois et parfois ne le font pas.
Et comment faut-il pour item_gender par exemple. Voyons si il n'y a pas de genre spécifié que d'avoir les deux.
Désolé si ma description du problème de la confusion.
Base sur Gobras commentaires le code suivant a été produit
NSArray *brands = [NSArray arrayWithObjects:brand_one, brand_two, brand_three, brand_four, brand_five, nil];
NSPredicate *predicate_brands = [NSPredicate predicateWithFormat:@"brand_id like %@" argumentArray:brands];
Explication logique de ce que la fonction de recherche doit
- fetchrequest
- prédicat sur demande de récupération
prédicat basé sur 5 marque id, l'id de l'élément, le type de poste, point de faire, le point le sexe,
si l'un des ci-dessus est vide, il doit récupérer toutes les entrées liées, par exemple, si l'élément de la catégorie est vide, il doit récupérer tous les "Bijoux, Montres, etc", mais la limite avec le reste du prédicat expressions.
Dois-je créer par exemple un composé de prédicats pour les marques et de créer un autre pour la catégorie de poste avec des valeurs "item_category, comme les Bijoux" et "item_category comme des Montres" et après cela, comment puis-je exactement les mettre ensemble?
Vous devez vous connecter pour publier un commentaire.
Assembler une collection appropriée des différents prédicats dans
NSCompoundPredicate
comme dans
Vous pouvez empiler jusqu'votre prédicats avec
orPredicateWithSubpredicates:
etandPredicateWithSubpredicates:
et NSCompoundPredicate être un NSPredicate lui-même peut être aggravée.Voir
https://developer.apple.com/documentation/foundation/nscompoundpredicate
Pour ceux qui sont intéressés par Swift!
C'est assez simple à construire le prédicat de façon dynamique: combinez votre prédicat chaîne de format avec le nombre souhaité de conditions et de construire correspondant NSMutableArray avec les arguments.
[NSPredicate predicateWithFormat:argumentArray:]
fera le reste.