understanding how data coredata objective-c core-data attributes entity-relationship nsmanagedobject

objective-c - how - understanding core data



NSManagedObject no puede obtener atributos de NSAtomicStoreCacheNode (2)

Tengo una relación uno a uno entre la entidad A y la entidad B (unilateral), por ejemplo, llamada bRel. Tengo subclases de NSAtomicStore (MyStore) y NSAtomicStoreCacheNode (MyCacheNode). En el método load: myStore, creo instancias de MyCacheNode para las entidades A y B (aNode y bNode) y asigno el diccionario de propertyCache correspondiente para cada una. El propertyCache para aNode contiene bNode para clave @"bRel" .

El aManagedObject se crea normalmente y tiene todas las propiedades válidas. Pero cuando unManagedObject accede al bManagedObject a través del aManagedObject.bRel.someAttribute , el bManagedObject sigue siendo el error. bManagedObject no recibe awakeFromInsert o awakeFromFetch . BNode y bManagedObject comparten la misma instancia de managedObjectID . El bNodo está activo cuando bManagedObject accede a algunos atributos. Cuando unManagedObject accede a sus atributos, pasa por el valueForKey: de MyCacheNode. Cuando bManagedObject lo hace, no llegamos allí.

bManagedObject simplemente nunca se dispara.

¿Alguien puede suponer qué debo revisar en esta situación?


Desde la perspectiva actual, creo que simplemente no llamé a willAccessValueForKey:/didAccessValueForKey: para las propiedades sintetizadas, y eso fue irrelevante para personalizar la tienda. B era la propiedad sintetizada de A, AFAIR.


sí. El problema puede ser que tenga una Declaración de reenvío de aRel en su objeto administrado. Intente importarlo en el archivo aManagedObject.h. De esa manera, deberías poder acceder a sus atributos.

Déjame saber como va :)