У меня большой объем данных, сохраненных с использованием Core Data Framework. Всегда есть много обновлений, которые нужно сделать. Проблема в том, что эти обновления занимают слишком много времени.
Причина этого в том, что для каждой записи в моей базе данных я должен сделать запрос, чтобы получить соответствующий NSObjectModel, а затем обновить его атрибуты. Поскольку есть много данных для просмотра, это занимает много времени. Если я только создаю новые объекты и вставляю их в свою базу данных, это занимает гораздо меньше времени, что, конечно, имеет смысл.
Так что мой вопрос, есть ли более эффективный способ сделать это, потому что я действительно говорю о минутах, а не секундах.
Как я уже сказал, мне приходится очень часто получать объекты из базы данных. Вы можете увидеть это в коде ниже. Может быть, это помогает понять, где моя проблема:
while (additiveElement != nil) {
//Get Product
Product *product = [Product productWithID:additivID inManagedObjectContext:self.managedObjectContext];
//Get ProductLanguage
ProductLanguage *productLanguage = [ProductLanguage productLanguageWithLanguage:self.currentLanguage andProductID:additivID inManagedObjectContext:self.managedObjectContext];
productLanguage.language = self.languageEntity;
product.productID = additivID;
productLanguage.name = additivName;
productLanguage.text = additivText;
productLanguage.product = product;
product.productFamily = [ProductFamily familyWithID:additivFamilyID inManagedObjectContext:self.managedObjectContext];
if (productFiles != nil) {
File *file = [File fileWithName:fileName inManagedObjectContext:self.managedObjectContext];
file.fileName = fileName;
file.fileSize = fileSize;
file.fileDateNew = fileDate;
file.fileType = fileType;
file.language = [Language languageWithAbbreviation:@"en" inManagedObjectContext:self.managedObjectContext];
}
}