17

Ho una relazione uno-a-uno tra l'entità A e l'entità B (un lato), ad esempio bRel. Ho sottoclassi di NSAtomicStore (MyStore) e NSAtomicStoreCacheNode (MyCacheNode). Nel metodo load: di MyStore creo le istanze di MyCacheNode per le entità A e B (aNode e bNode) e assegna il dizionario propertyCache corrispondente per ognuno. La proprietàCache for aNode contiene bNode per la chiave @"bRel".NSManagedObject non può ottenere attributi da NSAtomicStoreCacheNode

L'oggetto aManagedObject viene creato normalmente e ha tutte le proprietà valide. Ma quando aManagedObject accede a bManagedObject tramite aManagedObject.bRel.someAttribute, bManagedObject rimane in errore. bManagedObject non riceve awakeFromInsert o awakeFromFetch. BNode e bManagedObject condividono la stessa istanza di managedObjectID. BNode è attivo quando bManagedObject accede adAttribute. Quando aManagedObject accede ai suoi attributi, passa attraverso valueForKey: di MyCacheNode. Quando bManagedObject lo fa, non ci arriviamo.

bManagedObject non si accende mai.

Qualcuno può supporre cosa devo controllare in questa situazione?

+0

Ho problemi a connettere le relazioni quando uso un NSAtomicStore personalizzato, sei arrivato da qualche parte con il tuo problema? – Vamos

+0

Si comporta allo stesso modo se si accede alla relazione utilizzando la variabile ValueForKey? – quellish

risposta

1

sì. il problema potrebbe essere che hai una dichiarazione in avanti di aRel sul tuo oggetto gestito. Provare a importarlo nel file aManagedObject.h. in questo modo, dovresti essere in grado di accedere ai suoi attributi.

Vorrei sapere come va :)

1

Dal punto di vista attuale penso che ho appena non ho chiamato willAccessValueForKey:/didAccessValueForKey: per le proprietà di sintesi, e che era irrilevante per la personalizzazione del negozio. B era la proprietà sintetizzata di A, AFAIR.

Problemi correlati