2012-03-16 32 views

Trả lời

5

Điều bạn đang tìm kiếm là save trong Dữ liệu chính sau khi tất cả 100 đối tượng đã được chèn vào thay vì sau mỗi lần chèn.

Khi đối tượng được chèn vào Dữ liệu chính, chúng chỉ xuất hiện trong bộ nhớ. Để duy trì các đối tượng mới của bạn vào đĩa bạn nên lưu sẽ thực hiện tất cả các thay đổi (chèn, cập nhật và xóa) và ghi chúng vào đĩa với nhau.


Nếu bạn nhìn vào the documentation for -insertObject (dưới đây), bạn có thể đọc mà chèn một đối tượng chỉ đăng ký các đối tượng để được chèn vào khi thay đổi được lưu.

insertObject:

Đăng ký một đối tượng được chèn vào trong cửa hàng khăng khăng của người nhận trong thời gian tới thay đổi được lưu.

- (void)insertObject:(NSManagedObject *)object 

thông số

đối tượng

Một đối tượng quản lý.

Bằng cách tiếp tục nhìn vào the documentation for -save: (dưới đây), bạn sẽ se rằng nó sẽ (cố gắng) lưu tất cả sự thay đổi, trong trường hợp của bạn tất cả 100 mặt hàng được chèn chưa lưu.

tiết kiệm:

nỗ lực để thực hiện những thay đổi chưa được lưu vào các đối tượng đăng ký cửa hàng liên tục của họ.

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

thông số

lỗi

Một con trỏ tới một đối tượng NSError. Bạn không cần tạo đối tượng NSError. Các hoạt động tiết kiệm hủy bỏ sau khi thất bại đầu tiên nếu bạn vượt qua NULL.

Return Value

YES nếu tiết kiệm thành công, nếu không NO.

+0

Điều này cũng rất chậm vì tốc độ tăng từ giao dịch bị mất. Dù sao để sửa đổi điều đó? – Jonny

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

[[<#NSManagedObjectContext#> undoManager] undo]; // rollback 
... 
Các vấn đề liên quan