SwiftData нет такой ошибки таблицы для одной из моделейIOS

Программируем под IOS
Ответить
Anonymous
 SwiftData нет такой ошибки таблицы для одной из моделей

Сообщение Anonymous »

В моем приложении есть 2 модели, первая (ModelA) работает нормально — данные сохраняются независимо от того, сколько раз я перезапускаю приложение на симуляторе, но вторая (ModelB) иногда теряет данные, и я вижу ошибки о нет такая таблица найдена в отладчике Xcode. Я не понимаю, в чем между ними разница.

Код: Выделить всё

@Model
final class ModelA: Identifiable {
@Attribute(.unique) var id: String
var name: String

init(id: String = UUID().uuidString, name: String) {
self.id = id
self.name = name
}
}

Код: Выделить всё

@Model
final class ModelB: Identifiable {
@Attribute(.unique) var id: String
var param: String

init(id: String = UUID().uuidString, param: String) {
self.id = id
self.param = param
}
}

Код: Выделить всё

@main
struct MyApp: App {
var sharedModelContainer: ModelContainer = {
let schema = Schema([
ModelA.self,
ModelB.self
])
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)

do {
return try ModelContainer(for: schema, configurations: [modelConfiguration])
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()

var body: some Scene {
WindowGroup {
TabView { /* === views === */ }
}.modelContainer(sharedModelContainer)
}

upd
Мне не удалось найти причину и устранить ее (хотя это проблема с получением данных, я считаю, что она связана с тем, как иерархия представлений структурирована), но вместо этого я нашел обходное решение - я сделал вторую модель структурой (идентифицируемая, кодируемая, хешируемая)

Подробнее здесь: https://stackoverflow.com/questions/787 ... -of-models
Ответить

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

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

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

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

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