CoreData fetchRequest avec le prédicat ignore de manière incorrecte les valeurs NULL

J'ai des objects stockés dans mon CoreData qui ressemblent à ceci:

 type de nom d' identifiant
 1 chat aaa
 2 chien bbb
 3 ape NULL

Je récupère ces objects basés sur la propriété "type" comme ceci:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:self.entityName]; fetchRequest.predicate = [NSPredicate predicateWithFormat:@"type != %@", @"aaa"]; fetchRequest.fetchBatchSize = 100; fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"type" ascending:YES]]; NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"section" cacheName:nil]; fetchedResultsController.delegate = self; NSError *error = nil; [fetchedResultsController performFetch:&error]; 

Donc, j'essaie simplement d'aller chercher tous les objects où le type n'est pas "aaa".

La requête d'extraction omet de manière inattendue non seulement les objects avec des types "aaa" comme spécifié dans le prédicat, mais aussi les objects où le type n'est pas défini (null), ce qui entraîne ce qui suit:

 type de nom d' identifiant
 2 bar bbb

Au lieu de ce à quoi je m'attendais:

 type de nom d' identifiant
 2 chien bbb
 3 ape NULL

Le même problème se produit lorsque j'utilise le format de prédicat: NOT (type IN {"aaa", "bbb"}) . Ce qui est la façon dont je vais avoir besoin de cela. Ce prédicat ne génère aucun logging.

Je ne vois pas pourquoi cela pourrait se produire, car si je ne spécifie pas de prédicat, tous les objects sont récupérés correctement. Les objects avec des types NULL sont récupérés correctement si je change le prédicat en:

 [NSPredicate predicateWithFormat:@"type = null"]; 

Veuillez noter tout ce qui précède illustre juste ce que le problème se résume à. Mon code actuel est plus compliqué et utilise simplement le format de prédicat: type != "aaa" OR type = null est quelque chose que j'aimerais éviter si possible.

Toute aide grandement appréciée!