Tôi đang làm việc trên ứng dụng chứa dữ liệu của nó trong máy chủ MySQL bên ngoài, nhưng lưu trữ cục bộ bằng cách sử dụng Dữ liệu cốt lõi để có thời gian phản hồi tốt hơn. Về cơ bản, những gì tôi muốn làm là thế này:Cập nhật kết quả của NSFetchedResultsController mà không cần tìm nạp mới
- Fetch dữ liệu từ Core Data (SQLite lưu trữ dữ liệu, sử dụng NSFetchedResultsController) và hiển thị nó
- Grab mặt hàng mới từ máy chủ MySQL trong nền
- Làm mới chế độ xem bảng hiện tại bằng tập dữ liệu mới (cả mục mới và cũ)
Tôi có tất cả điều này làm việc ngoại trừ bước cuối cùng. Tôi không thể tìm ra cách làm cho NSFetchedResultsController cập nhật bộ dữ liệu của nó. Cho đến nay, tôi đã cố gắng thêm các mục trực tiếp đến NSManagedObjectContext của nó:
[NSEntityDescription insertNewObjectForEntityForName:@"Entity"
inManagedObjectContext:[fetchedResultsController
managedObjectContext]];
Tôi cũng đã thử những gì Apple đã làm trong ví dụ CoreDataBooks của họ, và sử dụng một "thêm" bối cảnh đối tượng được quản lý riêng biệt và một cuộc gọi đến mergeChangesFromContextDidSaveNotification:
. Dường như không thay đổi tập hợp các NSManagedObject * s trong ngữ cảnh đối tượng được quản lý của trình điều khiển kết quả tìm nạp của tôi.
Tôi làm cách nào để cập nhật bộ đối tượng mà NSFetchedResultsController hiện đang quản lý?
Đây thực sự là phương pháp tôi đã sử dụng, và tôi nghĩ rằng đây là cách Apple đã làm nó trong một số họ Ví dụ về Dữ liệu cốt lõi. – Tim