I've got two Entities that I'll call A and B. They are configured with To-Many relationships in both directions, so A.myBs and B.myAs are both NSSets.
Here is my bizarre problem.
When I add a B to my A entity, I do it using the mutableSetValueForKey like this:
NSMutableSet *myBSet = [myA mutableSetValueForKey:@"myBs"];
[myBSet addObject:theBtoAdd];
This does add the theBtoAdd to the A entity but does not add the inverse relationship. Core Data context save doesn't kick any errors, but my A object doesn't have the B inverse set. If I exit the application, even the partial relationship isn't saved.
Here's the strange part... if I just switch my code around and do the opposite (there are reasons why this is harder to do for my particular application) - add A to B instead of adding B to A like this:
NSMutableSet *myASet = [myB mutableSetValueForKey:@"myAs"];
[myASet addObject:theAtoAdd];
It works just fine. By the way, I have plenty of other to-many relationships that work. Just this one doesn't.
Couple of other things:
1) My core data object model looks good, but this is the first new entity that I've added under Xcode 4
2) I've check, rechecked and gone blind looking at my custom NSManagedObjects, but they look fine - declared dynamic, NSSet, no conflicting setters/getters... etc.
Any help or debugging suggestions would be greatly appreciated. Thank you!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…