Predicates must be bound to cross an unknown number of objects in the relationship graph. You must specifically say which entities and relationships must go through. You cannot say, "Move the relationship so-and-so until you hit zero."
Premature optimization is the root of all evil. I would not worry about the speed of passing relationships in living objects. Core Data is much faster than you might expect in such things. To optimize in this case, set to extract as errors, so no data is loaded only by relationships, and I don’t think you will have performance problems.
As an aside, look at your nomenclature, entities must be managed by objects, since classes refer to instances. Abstract objects, managed concrete objects. Objects are attributes of a data model only. For example, in this case, you can have only one self-regulatory object in the data model, which can be used to create a graph of millions of managed objects.
You can find the parent objects in the same way you find superclasses, but this is actually not what you asked.
source share