NSManagedObject не может получать атрибуты из NSAtomicStoreCacheNode
У меня есть взаимно-однозначная связь между сущностью A и объектом B (односторонняя), например, с именем bRel. У меня есть подклассы NSAtomicStore
(MyStore) и NSAtomicStoreCacheNode
(MyCacheNode). В методе load:
MyStore я создаю экземпляры MyCacheNode для сущностей A и B (aNode и bNode) и назначаю соответствующие словаря propertyCache для каждого из них. СвойствоCache для aNode содержит bNode для ключа @"bRel"
.
aManagedObject создается нормально и обладает всеми свойствами. Но когда aManagedObject обращается к bManagedObject через aManagedObject.bRel.someAttribute
, bManagedObject остается неисправным. bManagedObject не получает awakeFromInsert
или awakeFromFetch
. BNode и bManagedObject имеют один и тот же экземпляр managedObjectID
. BNode жив, когда bManagedObject обращается к someAttribute. Когда aManagedObject обращается к своим атрибутам, он проходит через valueForKey:
MyCacheNode. Когда bManagedObject делает это, мы не получаем его.
bManagedObject просто никогда не срабатывает вообще.
Может кто-нибудь предположить, что я должен проверить в этой ситуации?
Ответы
Ответ 1
да. проблема может заключаться в том, что у вас есть форвардная декларация aRel на управляемом объекте.
Попробуйте импортировать его в файл aManagedObject.h. Таким образом, вы должны иметь доступ к этим атрибутам.
Сообщите мне, как это происходит:)
Ответ 2
С текущей точки зрения, я думаю, что я просто не назвал willAccessValueForKey:/didAccessValueForKey:
для синтезированных свойств, и это не имело значения для настройки хранилища.
B было синтезированным свойством A, AFAIR.