Размер пакета не работает при использовании родительского / дочернего контекстов

Мне удалось подтвердить это в моей заявке, и я создал образец быстрой заявки, чтобы подтвердить это. Вот установка:

У вас есть два контекста управляемого объекта:

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

Эта настройка была основана на видео WWDC, в котором предлагается сохранить фоновый поток, установивmasterMOC в личную очередь и привязать его к постоянному хранилищу. Если вы создалиNSFetchedResultsController с использованиемmainMOC (и это должно бытьmainMOC поскольку он привязан к интерфейсу пользователя), и установитеfetchBatchSize, размер партии не учитывается, и все сущности сбрасываются сразу. Я включил аннотации отладки SQLite, и при прокрутке тысяч строк (с размером пакета 20) никаких сбоев не возникало.

Если я сделаю одну простую настройку, а именно привяжу постоянный координатор магазина кmainMOC и сделать его корневым контекстом (то есть он больше не является дочерним по отношению к основному устройству), тогда размер пакета работает отлично, и, когда я прокручиваю тысячи строк, выдается несколько ошибок.

Это ожидаемое поведение? Я что-то пропустил?

Вы можете скачать пример проектаВот

Ответы на вопрос(2)

Ваш ответ на вопрос