2012-03-16 10 views

Odpowiedz

5

To, czego szukasz, to save w danych podstawowych po włożeniu wszystkich 100 obiektów w przeciwieństwie do każdej wstawki.

Po wstawieniu obiektów do danych podstawowych są one obecne tylko w pamięci. Aby utrwalić nowe obiekty na dysku, należy zapisać, które zajmie wszystkie zmiany (wstawia, aktualizuje i usuwa) i zapisuje je na dysku razem.


Jeśli spojrzeć na the documentation for -insertObject (poniżej) można przeczytać, że wstawienie obiektu rejestruje tylko obiekt przeznaczony do wkładania, gdy zmiany są zapisywane.

insertObject:

Rejestruje obiekt do umieszczenia w sklepie uporczywego odbiornika następnym razem zmiany są zapisywane.

- (void)insertObject:(NSManagedObject *)object 

Parametry

obiektów

zarządzany obiekt.

By dalej patrząc na the documentation for -save: (poniżej) będzie se, że będzie (próba) zapisać wszystko niezapisanych zmienione, w Twoim przypadku wszystkie 100 wstawione elementy.

Save:

usiłuje popełnić niezapisanych zmian zarejestrowanych obiektów do ich trwałego magazynu.

- (BOOL)save:(NSError **)error 

Parametry

błędach

wskaźnik do obiektu NSError. Nie musisz tworzyć obiektu NSError. Operacja składowania zostaje przerwana po pierwszym niepowodzeniu, jeśli zdasz NULL.

Return Value

YES jeśli Zapisz się powiedzie, inaczej NO.

+0

Jest to również bardzo powolne, ponieważ wzrost prędkości z transakcji jest tracony. W każdym razie, żeby to zmienić? – Jonny

3
[[<#NSManagedObjectContext#> undoManager] beginUndoGrouping]; 
... do some data modifications .... 
[[<#NSManagedObjectContext#> undoManager] endUndoGrouping]; 

[[<#NSManagedObjectContext#> undoManager] undo]; // rollback 
... 
Powiązane problemy