У меня есть managedObjectContext с двумя объектами, каждый из которых содержит несколько записей. Объекты Entity A представлены в представлении таблицы, и я хочу, чтобы пользователь мог удалить любую сущность Entity A. Моя проблема заключается в том, что при отправке запроса на удаление этой записи вызывается неправильный объект!Удаление управляемого объекта из объекта
FYI, я обрабатываю процесс удаления отдельным методом, поэтому, когда кнопка «Удалить» в представлении «Таблица» запускается, прежде чем она будет удалена из представления, я сначала хочу убедиться, что она была удалена из управляемого объектаObjectContext ,
- (BOOL) deleteCompletedSuccessfully : (EntityA *) anEntry
{
[self.managedObjectContext deleteObject: anEntry];
NSError *error = nil;
If (![self.managedObjectContext save:&error])
{
NSLog (@”%@”, [error userInfo]);
return NO;
}
return YES;
}
Ошибка: Error Domain=NSCocoaErrorDomain Code=1570 \"The operation couldn\U2019t be completed. (Cocoa error 1570.)….
А остальные сообщения об ошибке указывает на то, что я пытаюсь удалить всухую объект в EntityB !!!! Хотя anEntry фактически находится в EntityA.
Я попытался инкапсулирования вход (anEntry этот случай) в массив, то есть:
- (BOOL) deleteCompletedSuccessfully : (NSArray *) array
{
EntryA *anEntry = [array objectAtIndex: 0];
// and the rest of the code
та же ошибка. Как я могу заставить его искать эту конкретную запись в определенном объекте ?!
Любая помощь?
Извините за путаницу. Ты прав. Поэтому позвольте мне перефразировать мой вопрос: в моей модели данных у меня есть 2 несвязанных объекта и контекст управляемых объектов. Я смог сохранить несколько записей для каждого объекта и получить их правильно. Однако, когда я пытаюсь удалить запись из EntityA, я получил эту ошибку, относящуюся к EntityB, которая не имеет ничего общего с EntityA или с объектом, который требуется удалить. Я просто пытаюсь удалить managedObject из aContext с двумя несвязанными объектами. – Canopus
Вы можете получить ошибку проверки для любого объекта при сохранении независимо от предшествующего действия для других объектов. Ошибка, скорее всего, происходит где-то еще в коде, но обнаруживается только тогда, когда контекст сохраняет и запускает проверку. – TechZen
Спасибо. Найди его. – Canopus