Как оптимизировать базовые данные для многих вставок объектов - PullRequest
0 голосов
/ 11 ноября 2011

Я пытаюсь вставить около 400 объектов в CoreData с памятью, но это слишком долго. Около 20-30 секунд. Это нормально? Может быть, существует какой-то особый случай для многих вставок?

- (MyObject*) insertNew
{
    NSEntityDescription* entityDescr = [MyObject entityDescription];
    NSManagedObjectContext* ctx = [NSManagedObjectContext defaultContext];
    MyObject* obj = [[[MyObject alloc] initWithEntity:entityDescr
        insertIntoManagedObjectContext:ctx] autorelease];
    obj.name = @"name";
    obj.Id = @"an ID";
    return obj;
}

Объекты находятся в иерархических отношениях друг с другом, как дерево.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Если эти данные будут импортированы при первом запуске вашего приложения, вы можете захотеть использовать начальную базу данных, таким образом вы сможете выполнить медленный импорт один раз во время разработки, тогда это всего лишь операция небольшой копии.

Если ваша база данных очень велика, а пространство занимает слишком много места, вы, возможно, захотите найти другое решение, поскольку оно может использовать больше дискового пространства, чем необходимо (начальная база данных будет в комплекте и в каталоге документов).

0 голосов
/ 11 ноября 2011

Перед выполнением любого импорта с помощью Core Data необходимо прочитать Руководство по программированию Core Data «Эффективный импорт данных».

Это потенциально сэкономит вам огромное количество времени, особенно если импорт будет повторяться.

...