tôi trình bày xem bảng nội dung sử dụng NSFetchedResultsController
trong đó có một vị ngữ:NSFetchedResultsController với vị bỏ qua những thay đổi sáp nhập từ NSManagedObjectContext khác nhau
[NSPredicate predicateWithFormat:@"visible == %@", [NSNumber numberWithBool:YES]]
On sợi nền sử dụng riêng biệt NSManagedObjectContext
tôi cập nhật vài trong số các đối tượng và thay đổi giá trị visible
họ từ NO
đến YES
. Lưu, hợp nhất các thay đổi trong chủ đề chính NSManagedObjectContext
. Nhưng fetchedObjects
của NSFetchedResultsController
không thay đổi. Bộ điều khiển cũng không gọi số -controller:didChangeObject:...
trên đại biểu. Nếu thực thể được cập nhật trên chủ đề chính theo cách giống hệt nhau (ứng dụng thử nghiệm của tôi gọi cùng một phương thức), mọi thứ hoạt động như mong đợi.
Ngoài ra, thông báo NSUpdatedObjectsKey
chứa các đối tượng đó.
Hiện nay các giải pháp duy nhất mà tôi đã tìm thấy là để kêu gọi mỗi người trong số NSUpdatedObjectsKey
thực thể:
NSManagedObjectContext *context = ... // main thread context
[context existingObjectWithID:[object objectID] error:nil]
Vấn đề này là chỉ với cập nhật đối tượng mà trước đây không phù hợp với vị ngữ.
Tôi có thiếu thứ gì đó hiển nhiên không?
Đó có phải là lỗi của Dữ liệu cốt lõi không? Tôi nghĩ chúng ta nên báo cáo lỗi cho Apple. Tôi vừa làm một. – an0
Lỗi? Nếu có tiến bộ nào? – lostintranslation
Lỗi này cuối cùng đã được sửa trong iOS 10: https://twitter.com/an0/status/750413478620491776 – an0