views:

1150

answers:

1

Tracking a familial relationship in Core Data (1 parent entity + 2 types of children, one of which is recursive), trying to create a drop-menu in Interface Builder that lists the names of the parent entities so that the user can choose one to associate as the parent of the entry being edited. I've got the bindings all set, but when it runs it produces the following error text in the first slot of the menu:

Relationship fault for (<NSRelationshipDescription: 0x100143ed0>), name parent, isOptional 1, isTransient 0, entity Family, renamingIdentifier parent, validation predicates ( ), warnings ( ), versionHashModifier (null), destination entity Family, inverseRelationship subFamilies, minCount 0, maxCount 0 on 0x10025c850

I've done a little bit of reading around online, and it appears to have to do with the fact that I've got a many-to-one relationship set up (as one parent can have multiple children, but I want to limit each child to only one parent). I've been trying to figure out a way to restructure the data model to not put a many-to-one relationship on something that'll need to be called up in such a fashion, but I'm getting stuck trying to figure out how to track the children. Any ideas on possible methods of resolving the issue?

+4  A: 

A fault in Core Data is not an error, it just means that the what you are trying to access hasn't been retrieved from the database yet. If you do something like [fetchResults valueForKey:@"name"] it will fire and you should get what you expect. It shouldn't be a problem with your relationship model.

By the way, "minCount 0, maxCount 0" seems weird. Is that really what you want? minCount of and maxCount of 1 should make more sense.

Adrian Schönig
I left the `minCount` and `maxCount` fields blank when I created it, as I wanted to leave it open-ended for a many-to-one relationship (not knowing how many children to anticipate for any given parent).Thanks for the help!
Kaji