Размер пакета не работает при использовании родительского / дочернего контекстов
Мне удалось подтвердить это в моей заявке, и я создал образец быстрой заявки, чтобы подтвердить это. Вот установка:
У вас есть два контекста управляемого объекта:
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
и сделать его корневым контекстом (то есть он больше не является дочерним по отношению к основному устройству), тогда размер пакета работает отлично, и, когда я прокручиваю тысячи строк, выдается несколько ошибок.
Это ожидаемое поведение? Я что-то пропустил?
Вы можете скачать пример проектаВот