Подтвердить что ты не робот

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 просто никогда не срабатывает вообще.

Может кто-нибудь предположить, что я должен проверить в этой ситуации?

4b9b3361

Ответ 1

да. проблема может заключаться в том, что у вас есть форвардная декларация aRel на управляемом объекте. Попробуйте импортировать его в файл aManagedObject.h. Таким образом, вы должны иметь доступ к этим атрибутам.

Сообщите мне, как это происходит:)

Ответ 2

С текущей точки зрения, я думаю, что я просто не назвал willAccessValueForKey:/didAccessValueForKey: для синтезированных свойств, и это не имело значения для настройки хранилища. B было синтезированным свойством A, AFAIR.