Scenario:
I’m dealing with 2 viewControllers each with it’s own context (same thread). I’m trying to pass the managedObject’s objectID from MOC2 -> MOC1, via a delegate method. Fine, did that, it seems to be passing the ObjectID.
Here’s the problem…from MOC1 (the delegate) I get a pointer to the new object via [self.localMOC objectWithID:thePassedID]. I run an NSLog on the found object, the log describes it, it seems to be found. Now when I try to find it in the updated fetched results controller it cannot be found even though it shows the object in the table view which is using that same results controller.
Here are the log statements…
The object via objectWithID: <Account: 0x6b11f90> (entity: Account; id: 0x6db44b0 <x-coredata:///Account/t5F84827D-E710-4331-A462-FCA1A0D335102> ; data: <fault>)
The results controller object: <Account: 0x6b1fc50> (entity: Account; id: 0x6b50250 <x-coredata://84B6642A-9C80-451F-BED4-52952EDFC43C/Account/p9> ; data: <fault>)
It seems as one is a permanentID and the other is a temporaryID, as well as completely different memory addresses.
Any clues as to what I am doing wrong?
Below is the flow:

After a redesign I utilized the iOS5 parent/child MOC’s. I still don’t totally understand why the object ID’s, even though they were permanent ID’s, returned different objects between contexts. It obviously had something to do with it’s merging even though I refetched data after a full save. Hopefully the inner workings of core data will gradually make more sense to me as time goes by. Thanks for the suggestions though.