Я хотел бы получить некоторое предложение для одновременного выполнения операций с основными данными в моем проекте. Мой проект работает с двух лет, так что он имеет множество реализаций, которые могут быть оптимизированы в зависимости от наличия новых функций в objectiveC
. В основном, я ищу оптимизацию работы CoreData
.Core Data Concurrency
В настоящее время большая часть операций с данными выполняется с использованием основного контекста управляемых объектов. Недавно я внедрил новую функцию для загрузки большого набора данных и вставки в базу данных с использованием основных данных после входа в систему. Это должно было выполняться параллельно с другими операциями в приложении. Теперь я понял, что код, написанный для основных данных, выполняется в основном потоке, потому что пользовательский интерфейс приложения блокируется во время операции coredata
. Таким образом, я упомянул много блогов и узнал, что есть две стратегии, в которых можно достичь параллелизма между основными данными, уведомлениями с помощью множества контекстов и контекстов объектов, управляемых родителем/дочерним элементом.
Я пробовал родительскую/дочернюю стратегию, поскольку Apple не предпочитает другую стратегию. Но я получаю случайные сбои с исключением: «Коллекция была мутирована при перечислении» на executeFetchRequest
. Это исключение начинается после реализации стратегии parent/child. Может ли кто-нибудь помочь мне решить эту проблему?