Can anyone confirm my experience which shows the NSFetchedResultsController is not performing fetches if the mapping for a nsmanagedobject contains identificationAttributes and just attribute's value of this object is being updated from JSON?
Another issue I have with Restkit is the behavior of this "identificationAttributes" feature. If Restkit is going to map json data to such a (unique) core data object then it looks if there is already an existing instance of this nsmanagedobject. But it seems this instance is being searched globaly, that is, there can be only one and single instance of this specific nsmanagedobject in the store with this specific identification attribute. I would expect to have a single instance not per store, but per owner (a parent owning relationship to this nsmanagedobject).
So this structure I would expect (id is the identification attribute value):
OwnerA/OwnerB and Owned are subclasses of NSManagedObject. All mappings are using identificationAttributes for all classes to keep them unique.
Response comes with: OwnerA:
Second response comes with: OwnerB:
But instead I get from Restkit this structure:
Response comes with: OwnerA:
Second response comes with: OwnerB:
but the OwnerA looses its relationship to Owned(id==X)
OwnerA:
as the only single instance of Owned with this id==X is defined by the relationship from OwnerB.
So there is only single instance of Owned with id attribute X. But it would be way better if this uniqueness was dictated per owner not global.
Furthermore update of Owned with the id attribute X is not registered by NSFetchedResultsController event if the predicate is using statements with Owned.attributeValue == ... NSPredicate is useless for detecting changes in relationships. That I know, but it also does not detect changes in nsmanagedobjects if such an object is using identificationAttributes.
Thank you for a comment.