/ / IOS основни данни как да се изпълни функцията sql сделка? - цел-c, ios, xcode, core-data

ios основни данни за това как да внедрите sql транзакция функция? - обективи c, ios, xcode, core-data

като заглавие. Използвам основни данни, за да вмъкна точка, вмъкна 100 артикула, твърде бавно. Как да се увеличи скоростта на вмъкване? Основни данни, които имат функция за транзакции?

Отговори:

5 за отговор № 1

Това, което търсите, е да save в Core Data (Данни на ядрото), след като всички 100 обекта са вмъкнати, а не след всяко вмъкване.

Когато обектите се вмъкват в Core Data, те саприсъства само в паметта. За да запазите новите си обекти на диск, трябва да запишете, което ще вземе всички промени (вмъквания, актуализации и изтриване) и ще ги запишете на диск заедно.


Ако погледнеш документацията за -insertObject (по-долу) можете да прочетете, че вмъкването на обект регистрира само обекта за вмъкване, когато се запазят промените.

Регистрира обект, който да бъде вмъкнат в постоянния магазин на приемника, когато следващите промени бъдат запазени.

- (void)insertObject:(NSManagedObject *)object

Параметри

обект

Управляван обект.

Като продължите да гледате документацията за -save: (по-долу) ще се запишете, че ще се опита да спаси всичко незапазените се променят, в твоя случай всичките 100 поставени елемента.

спестявате:

Опитва да извърши несъхранени промени в регистрираните обекти в техния постоянен магазин.

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

Параметри

грешка

Указател към NSError обект. Не е необходимо да създавате NSError обект. Операцията за запис се прекратява след първата грешка, ако преминете NULL.

Стойност на връщането

YES ако запазването е успешно, в противен случай NO.


4 за отговор № 2
[[<#NSManagedObjectContext#> undoManager] beginUndoGrouping];
... do some data modifications ....
[[<#NSManagedObjectContext#> undoManager] endUndoGrouping];

[[<#NSManagedObjectContext#> undoManager] undo]; // rollback
...