2012-03-16 4 views

답변

5

각 삽입 후 100 개 개체를 모두 삽입 한 후 Core Data에 save을 찾고 있습니다.

오브젝트가 코어 데이터에 삽입되면 오브젝트는 메모리에만 있습니다. 새 개체를 디스크에 유지하려면 모든 변경 (삽입, 업데이트 및 삭제)을 수행하고 디스크에 함께 쓰는 저장해야합니다.


당신이 the documentation for -insertObject 보면 (아래) 객체를 삽입하는 경우에만 변경 내용이 저장 될 때 삽입에 대한 객체를 등록하는 읽을 수 있습니다.

은 insertObject :

객체가 수신기의 영구 저장소에 변경 내용이 저장되어 다음 번에 삽입 할 등록합니다.

- (void)insertObject:(NSManagedObject *)object 

매개 변수

객체

관리되는 객체입니다. 더 당신이 자체가 (시도하는) 모든 저장되지 않은 변경, 귀하의 경우 모든 100 개 삽입 항목을 절약 할 것이다 (아래) the documentation for -save:보고

. 저장

:

시도는 영구 ​​저장소에 등록 된 객체에 저장되지 않은 변경 사항을 적용합니다.

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

매개 변수

오류

NSError 객체에 대한 포인터. NSError 개체를 만들 필요가 없습니다. NULL을 전달하면 첫 번째 실패 이후에 저장 작업이 중단됩니다. 반환 값

YES 저장이 성공하면

, 그렇지 않으면 NO.

+0

트랜잭션의 속도 증가가 없어지므로이 또한 매우 느립니다. 어쨌든 그것을 수정? – Jonny

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

[[<#NSManagedObjectContext#> undoManager] undo]; // rollback 
... 
관련 문제