Tôi chịu mọi hậu quả khi sử dụng một MOC đơn lẻ trong nhiều luồng - ứng dụng của tôi bị treo tại các điểm ngẫu nhiên vì MOC được tạo trong chủ đề chính và tôi cũng sử dụng nó để điền vào DB một chủ đề khác. Mặc dù mã được đồng bộ hóa (@synchronize) bằng cách sử dụng một singleton toàn cục mà ứng dụng gặp sự cố. Tôi đọc rằng sử dụng một MOC riêng biệt cho mỗi chủ đề sẽ làm cho mọi thứ ok nhưng tôi cũng đọc rằng nó được coi là một cách tiếp cận xấu để chia sẻ NSManagedObjects trên chủ đề.Core Data - chia sẻ NSManagedObjects trong nhiều chủ đề
Trường hợp sử dụng của tôi như sau: 1) Tôi tải và phân tích cú pháp XML từ máy chủ và trong khi phân tích cú pháp, tôi chèn mỗi NSManagedObject mới vào cơ sở dữ liệu. Điều này tất cả xảy ra trong một chủ đề riêng biệt. 2) Từ chủ đề chính, người dùng tương tác với giao diện người dùng đọc dữ liệu từ cơ sở dữ liệu.
Trong cả hai chủ đề tôi sử dụng NSManagedObjects. Bạn đề nghị tôi sửa lỗi này như thế nào? Tôi đã thất bại nhiều lần rồi. Thông thường, ứng dụng bị lỗi khi gợi ý rằng tôi đang sửa đổi một bộ sưu tập trong khi liệt kê nó là không đúng vì mã được đồng bộ và trong khi tôi lặp lại nó không sửa đổi và ngược lại - trong khi tôi sửa đổi nó, tôi không ' t lặp lại và tôi lưu một khi tôi đã hoàn tất.