Mam relację jeden-do-jednego między jednostką A i jednostką B (jednostronną), na przykład o nazwie bRel. Mam podklasy NSAtomicStore
(MyStore) i NSAtomicStoreCacheNode
(MyCacheNode). W metodzie MyStore load:
tworzę instancje MyCacheNode dla jednostek A i B (aNode i bNode) i przypisuję odpowiedni słownik właściwościCache dla każdego z nich. Właściwość cache dla aNode zawiera bNode dla klucza @"bRel"
.Obiekt NSManagedObject nie może uzyskać atrybutów z NSAtomicStoreCacheNode
Obiekt aManagedObject jest tworzony normalnie i ma wszystkie właściwości prawidłowe. Ale gdy aManagedObject uzyskuje dostęp do obiektu bManagedObject poprzez aManagedObject.bRel.someAttribute
, obiekt bManagedObject pozostaje uszkodzony. bManagedObject nie otrzymuje awakeFromInsert
ani awakeFromFetch
. Obiekty bNode i bManagedObject mają tę samą instancję co managedObjectID
. BNode jest aktywny, gdy bManagedObject uzyskuje dostęp do someAttribute. Kiedy aManagedObject uzyskuje dostęp do swoich atrybutów, przechodzi przez valueForKey:
z MyCacheNode. Kiedy robi to bManagedObject, nie dostaniemy się tam.
bManagedObject po prostu nigdy nie strzela.
Czy ktoś może przypuszczać, co powinienem sprawdzić w tej sytuacji?
Mam problemy z łączeniem relacji podczas używania niestandardowego magazynu NSAtomicStore, czy udało Ci się uzyskać dostęp do dowolnego problemu w dowolnym miejscu? – Vamos
Czy zachowuje się w ten sam sposób, jeśli uzyskujesz dostęp do relacji za pomocą zmiennej ValueForKey? –
quellish