Rozmiar partii nie działa w przypadku używania kontekstów nadrzędny / podrzędny

Udało mi się to potwierdzić w mojej aplikacji i szybkiej przykładowej aplikacji, którą utworzyłem, aby to potwierdzić. Oto konfiguracja:

Masz dwa konteksty obiektów zarządzanych:

masterMOC: NSPrivateQueueConcurrencyType, tied to persistent store coordinator
mainMOC: NSMainQueueConcurrencyType, child of masterMOC, NOT tied to any store coordinator

Ta konfiguracja została zainspirowana wideo WWDC, które sugeruje, że możemy zapisać na wątku w tle, ustawiającmasterMOC do kolejki prywatnej i powiązać ją z trwałym sklepem. Jeśli skonfigurujeszNSFetchedResultsController używającmainMOC (i to musi byćmainMOC ponieważ to ten jest związany z interfejsem użytkownika) i ustawfetchBatchSize, wielkość partii jest ignorowana i wszystkie jednostki są od razu narażone na błędy. Włączyłem adnotacje debugowania SQLite, a podczas przewijania tysięcy wierszy (przy wielkości partii 20) żadne błędy nie są uruchamiane.

Jeśli zrobię jedną prostą regulację, a mianowicie związanie trwałego koordynatora sklepu zmainMOC i uczyń go kontekstem roota (to znaczy, że nie jest już dzieckiem mistrza), wtedy rozmiar partii działa doskonale, a gdy przewijam tysiące wierszy, uruchamianych jest kilka błędów.

Czy to oczekiwane zachowanie? Czy czegoś mi brakuje?

Możesz pobrać przykładowy projekttutaj

questionAnswers(2)

yourAnswerToTheQuestion