Suppose I have a Core Data model with an abstract entity called “Animal.” Then, I have many other entities that inherit from this abstract entity: “Lion”, “Dog”, “Cat”, etc. (I’m not developing a zoo program, but this analogy works well for the issue I’m explaining!)
What I want to know is: Can I fetch “all animals” at once by doing this:
NSFetchRequest *searchRequest = [[NSFetchRequest alloc] init];
[searchRequest setEntity:[NSEntityDescription entityForName:@"Animal" inManagedObjectContext:aContext]];
NSArray *matchedObjects = [aContext executeFetchRequest:searchRequest error:nil];
I understand there are methods on NSEntityDescription to determine whether an entity inherits from another. But is there a fast way to grab all entities that are of a particular (abstract) type — in this case, “Animal”?
If the approach above is invalid, what is the most efficient way to go about this? Thanks!
You can definitely use that approach.
From Apple’s Core Data Programming guide: