Вот обзор моей установки:
- приложение использует данные Swift для хранения данных.
- Фоновые задачи выполняются с помощью Task.detached, а обновления пользовательского интерфейса управляются с помощью MainActor.run или
DispatchQueue.main.async/sync. - Один ModelContainer инициализируется и сохраняется как глобальная переменная.
- Экземпляры ModelContext создаются динамически для каждой задачи и не являются общими. Каждый контекст и связанные с ним модели изолируются
для каждой задачи. - Для обеспечения логической согласованности используются различные методы синхронизации потоков.
Вопросы:
[*]Есть ли в этом подходе какие-либо недостатки?< /li>
В частности, проблематично ли использовать ModelContext в асинхронной функции (обеспечивая единый путь выполнения для каждого ModelContext) без включения его в ModelActor?
Любая информация или рекомендации очень приветствуются!
Подробнее здесь: https://stackoverflow.com/questions/793 ... ncurrently
Мобильная версия