在Core Data中有效地更新NSManagedObjects

时间:2012-02-20 15:46:52

标签: objective-c database core-data nsmanagedobject

我有大量数据,使用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];
            }
}

0 个答案:

没有答案