iOS·29 питань

Як використовувати сучасний декларативний фреймворк SwiftData для персистентного зберігання даних у нових проєктах iOS?

Відповідь

Фреймворк SwiftData є сучасною замінною Core Data, створеною спеціально для екосистеми Swift. Він використовує макроси для спрощення опису моделей даних і безшовно інтегрується зі SwiftUI за рахунок механізмів реактивного оновлення інтерфейсу.

Щоб почати роботу, вам потрібно оголосити клас моделі даних за допомогою спеціального макросу Model. Властивості всередині цього класу автоматично стають збереженими полями, що позбавляє від необхідності вручну налаштовувати складні схеми сутностей та атрибутів.

На рівні додатка або кореневого уявлення ви налаштовуєте контейнер даних, використовуючи модифікатор modelContainer. Це дозволяє впровадити контекст персистентності в оточення SwiftUI і зробити дані доступними для читання та запису в усіх дочірніх компонентах.

Для вилучення збережених об'єктів в інтерфейсі використовується спеціальний макрос Query. Він автоматично оновлює подання при будь-яких змінах у базі даних, будь то додавання нового запису, видалення або редагування існуючих елементів.

Модифікація даних відбувається через стандартний контекст моделі, який можна отримати з оточення. Ви просто створюєте новий екземпляр вашої моделі, вставляєте його в контекст, і фреймворк самостійно піклується про збереження змін при закритті додатка або втраті фокуса.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем