Мой импорт XML требует, чтобы я проверял существующий объект перед вставкой.Другими словами, мне нужно хранить каждую запись во временном управляемом объекте данных, прежде чем я решу, сохранять ее или нет.*** ПРИМЕЧАНИЕ: Пожалуйста, обратитесь к последнему ответу в этой теме:
Есть ли способ создания объекта NSManagedObject без его вставки?
Я выбрал подходпоследний ответ в приведенной выше ссылке с использованием insertIntoManagedObjectContext: nil, который помещает входящую одну запись во временный объект без контекста.
В моем импорте у меня есть две таблицы: запись с одной таблицей и сразу несколько записей, связанных с несколькими.Это прекрасно работает, за исключением того, что я связал много записей после этого.
Прямо сейчас я вставляю записи многих таблиц в их собственный управляемый объект также с помощью nil.Вопрос в том, что когда я собираюсь сохранить одну запись, у меня также есть несколько связанных объектов, которые я создал.Как мне сохранить множество записей?Могу ли я получить их из нулевого контекста и просмотреть их?
Вот код для начала новой записи:
// Incoming record is for the one table.
if ([elementName isEqualToString: self.xmlRecordTagDelimiter]) {
NSEntityDescription *entity = [NSEntityDescription entityForName:self.xmlEntityName inManagedObjectContext:xmlManagedObjectContext];
self.xmlCurrentRecordTempObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
thisTagIsForManyTable = NO;
}
// Incoming record is for the many table.
if ([elementName isEqualToString: self.xmlManyRecordTagDelimiter]) {
NSEntityDescription *entity = [NSEntityDescription entityForName:self.xmlRelatedManyEntityName inManagedObjectContext:xmlManagedObjectContext];
self.xmlCurrentManyRecordTempObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
thisTagIsForManyTable = YES;
}
И код, в котором я собираюсь сохранить запись из одной таблицы в контекст:
[self.managedObjectContext insertObject:self.xmlCurrentRecordTempObject];
// Store what we imported already.
if (![self.xmlManagedObjectContext save:&error]) {
...... snip.....
}
Спасибо