Semblait haut et bas pour celui-ci mais ne trouve pas ma réponse. Je cherche à interroger les données de base pour tous les enregistrements qui ne sont PAS égaux à une chaîne spécifiée. Par exemple, tous les enregistrements qui ne sont pas égaux à l'ID de session en cours. J'ai essayé ces derniers en vain:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"listingID != %@", [sitListingID objectAtIndex:i]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ NOT CONTAINS[cd] %@",@"listingID", [sitListingID objectAtIndex:i]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ NOT CONTAINS %@",@"listingID", [sitListingID objectAtIndex:i]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"listingID NOT like %@", [sitListingID objectAtIndex:i]];
Rien ne fonctionne.HEEEEELP !!! -------------------------------------------------- --- plus de code
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ListingRecord" inManagedObjectContext:context];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sessionID <> %@", uniqueSessionListings];
[request setPredicate:predicate];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[context executeFetchRequest:request error:&error] mutableCopy];
Votre premier prédicat
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"listingID != %@", sessionID];
devrait fonctionner pour trouver tous les enregistrements où l'attribut listingID
n'est pas égal à sessionID
(à condition que listingID
et sessionID
aient le même type).
Si les deux sont des chaînes et que vous souhaitez rechercher tous les enregistrements où listingID
ne contient pas la chaîne sessionID
en tant que sous-chaîne, ce prédicat devrait fonctionner:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (listingID CONTAINS %@)", sessionID];
Utilisez "CONTAINS [cd]" si la comparaison de chaînes doit être effectuée en respectant la casse et les signes diacritiques.
NOTE : Vous pouvez spécifier le nom de l'attribut comme argument, mais vous devez alors utiliser %K
au lieu de %@
comme format:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (%K CONTAINS %@)", @"listingID", sessionID];