существующиеObjectWithID: ошибка: не удалось вернуть объект родительского контекста - PullRequest
0 голосов
/ 12 мая 2019

У меня странное поведение existingObjectWithID:error:

У меня есть контекст с родительским контекстом.«Время от времени» вызов existingObjectWithID:error: в дочернем контексте возвращает ошибку 133000, когда я знаю (и зарегистрировался, см. Ниже), что требуемый объект присутствует в родительском контексте.

Когда яскажем "время от времени", что никогда не происходит в последнем созданном NSManagedObject, но всегда во всех остальных (я создаю их в дочернем контексте и сохраняю их в родительском контексте).

Я ожидаю existingObjectWithID:error: чтобы всегда получать объект из родительского хранилища.Что не так?

Какой-то код, который иллюстрирует то, что я говорю:

- (NSManagedObject*)    backgroundObjectFromMainObject:(NSManagedObject*)object
{
    NSError             *error  = nil ;
    NSManagedObjectID   *oid    = [object objectID] ;
    NSManagedObject     *crd    = [self.context existingObjectWithID:oid
                                                   error:&error] ;
    [error logDetailsOfError] ;

    if (error)
    {
        NSLog(@"Registered in master : %@",[self.context.parentContext registeredObjects]) ;
    }

    return crd ;
}

Получает следующий журнал:

2019-05-12 16:52:43.607563+0200 MyOwnNotes[75836:10752916] Error domain: NSCocoaErrorDomain code: 133000
2019-05-12 16:52:43.609641+0200 MyOwnNotes[75836:10752916]    Tentative d’accès à un objet introuvable en magasin.    <= THAT MEANS "Try to access unstored object"
2019-05-12 16:52:43.609737+0200 MyOwnNotes[75836:10752916]   objectID => 0x600000250380 <x-coredata:///NotesHierarchyElement/t60559E22-AFA4-4E1A-8832-E5CF620A9D244>
2019-05-12 16:52:43.609953+0200 MyOwnNotes[75836:10752916] Registered in master : {(
    <NotesHierarchyElement: 0x600002118f00> (entity: NotesHierarchyElement; id: 0x600000250380 <x-coredata:///NotesHierarchyElement/t60559E22-AFA4-4E1A-8832-E5CF620A9D244> ; data: {
    father = nil;
    sons =     (
    );
    title = "16:52:35";
    url = nil;
}),
    <NotesHierarchyElement: 0x6000021043c0> (entity: NotesHierarchyElement; id: 0x6000002502e0 <x-coredata:///NotesHierarchyElement/t60559E22-AFA4-4E1A-8832-E5CF620A9D246> ; data: {
    father = nil;
    sons =     (
    );
    title = "16:52:41";
    url = nil;
})
)}

Вы можете ясно видеть этот объект с помощью objectId x-coredata:///NotesHierarchyElement/t60559E22-AFA4-4E1A-8832-E5CF620A9D244 присутствует в родительском хранилище через журнал зарегистрированных объектов (это второй (самый старый, я мог бы получить самый новый без проблем)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...