The is no prevention for "self" relationships.
An entity A
may have a relation (one-to-one or one-to-many) with entity A
or any of its descendants (or any other entity for that matter).
Define A
like so (for one-to-one relationship):
parent (reltionship with inverse A
->child
)
child (relationship with inverse A
->parent
)
You probably don't want this to be a property as CoreData will not maintain it as part of the object graph (cascade rules and such).