Comment utiliser NSPredicate pour attraper les objets enfants?
-
19-09-2019 - |
Question
Je suis nouveau aux données de base et essayer d'obtenir tous les enfants objets de différents types avec une requête. Disons qu'il ya un type « animal » en tant que parent et « chat », « chien » et « oiseaux » comme des enfants. Je voudrais obtenir les chats et les chiens, mais pas les oiseaux dans la requête unique retourné sous forme d'objets animaux. C'est possible?
La solution
la solution de Kevin Sylvestre avec un prédicat de entity.name != "Bird"
Autres conseils
Oui, il est possible:
// Load delegate from application and context from delegate.
SampleAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = delegate.managedObjectContext;
// Create new request.
NSFetchRequest *request = [[NSFetchRequest alloc] init];
// Create entity description using delegate object context.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Animal" inManagedObjectContext:context];
// Set entity for request.
[request setEntity:entity];
[request setIncludesSubentities:YES];
// Load array of documents.
NSError *error;
NSArray *animals = [context executeFetchRequest:request error:&error];
// Release request.
[request release];
// Access array.
for (id animal in animals) { }
Bien que cela (entity.name != "Bird"
) peut fonctionner si vous avez seulement « chat », « chien » et « Bird », il ne fonctionne pas si vous ajoutez ultérieurement plus « Animaux ». Vous pouvez également utiliser entity.name == "Dog" && entity.name == "Cat"
Il est un cas de « ... vous aurez jamais tout autre, dans votre cas, les animaux? »
Amusez-vous bien =)