Предварительное заполнение базы данных SwifData вместе с другими локальными объектами.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Предварительное заполнение базы данных SwifData вместе с другими локальными объектами.

Сообщение Anonymous »

У меня проблема со SwiftData, это, конечно, что-то простое, но я не могу ее решить 😢.
У меня есть файл Movies.store, который содержит список примерно из 3 тыс. фильмов и имеет только сущность Movie. Проблема в том, что помимо этой модели я создал в приложении @Model Favorite для сохранения любимых фильмов. Я скопировал файл Movies.store из пакета в каталог документа, иначе я смогу сохранять избранное между сеансами. На данный момент это работает нормально, но мне нужно решение, позволяющее отделить избранное от фильмов, потому что, возможно, следующий выпуск будет содержать обновления Movies.store, и мне нужно будет иметь возможность заменить файл .store без каких-либо побочных эффектов. сохраненные избранные.
Мой список фильмов может быть доступен только для чтения, так как он мне нужен только для заполнения ListView. Избранное должно быть доступно для чтения/записи. Может быть, что-то вроде сохранения объекта Movie в файле Movies.store и объекта Favorite в отдельном файле, я не знаю.
Вот как выглядит мой класс App. Есть совет?
@main
struct MoviesApp: App {

var modelContainer: ModelContainer = {
guard let storeURL = Bundle.main.url(forResource: "movies", withExtension: "store") else {
fatalError("Failed to find movies.store in app Bundle")
}

do {
let fileManager = FileManager.default
let documentDirectoryURL = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let documentURL = documentDirectoryURL.appendingPathComponent("movies.store")

// Only copy the store from the bundle to the Documents directory if it doesn't exist
if !fileManager.fileExists(atPath: documentURL.path) {
try fileManager.copyItem(at: storeURL, to: documentURL)
}

let config = ModelConfiguration(url: documentURL)

return try ModelContainer(for: Movie.self Favorite.self, configurations: config)
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()

var body: some Scene {
WindowGroup {
MainView()
}
.modelContainer(modelContainer)
}
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... cal-entity
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Предварительное заполнение базы данных в KMM на стороне iOS с помощью SQLDelight.
    Anonymous » » в форуме IOS
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Предварительное заполнение базы данных комнат с помощью Hilt
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Предварительное заполнение базы данных комнат с помощью Hilt
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Предварительное заполнение базы данных в KMM на стороне iOS с помощью SQLDelight.
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Предварительное заполнение базы данных в KMM на стороне iOS с помощью SQLDelight.
    Anonymous » » в форуме IOS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»