Posts

Post not yet marked as solved
1 Replies
677 Views
I had a simple class called Entry with one field (timestamp: Date) and I tried to add a new field without having to uninstall the app , so I would not crash. I tried implementing the MigrationPlan stuff but I do not know if I have to manually add a value to the new field or how exactly it works. Here is my code. When I use the EntrySchemaV0 it works fine but if I try to use the V1 it crashes. (could not fetch ModelContainer) I also tried it with a custom migration stage. Crashes with error (SwiftData/BackingData.swift:432: Fatal error: Expected only Arrays for Relationships - String) import Foundation import SwiftData enum EntrySchemaV0: VersionedSchema { static var versionIdentifier = Schema.Version(0, 1, 0) static var models: [any PersistentModel.Type] { [Entry.self] } @Model final class Entry { var timestamp: Date init(timestamp: Date) { self.timestamp = timestamp } } } enum EntrySchemaV1: VersionedSchema { static var versionIdentifier = Schema.Version(0, 2, 0) static var models: [any PersistentModel.Type] { [Entry.self] } @Model final class Entry { var name: String var timestamp: Date init(name: String = "", timestamp: Date = .now) { self.name = name self.timestamp = timestamp } } } enum EntryMigrationPlan: SchemaMigrationPlan { static var schemas: [any VersionedSchema.Type] { [EntrySchemaV0.self, EntrySchemaV1.self] } static var stages: [MigrationStage] { [migrateV0toV1] } static let migrateV0toV1 = MigrationStage.lightweight( fromVersion: EntrySchemaV0.self, toVersion: EntrySchemaV1.self ) }
Posted
by H073.
Last updated
.
Post not yet marked as solved
0 Replies
399 Views
The code that has the issue is this ZStack { Image(systemName: icon.isEmpty ? "book.pages.fill" : icon) .resizable() .scaledToFit() .scaleEffect(2.5) .foregroundStyle(.ultraThickMaterial) } the book.pages.fill is completely blurry and the lung is partly blurred. If I remove the .forgroundStyle(.ultraThickMaterial) is is completely blurred. Some icons, tho, are sharp no matter the forgroundStyle is omitted or not. COULD NOT UPLOUD IMAGE Here is the complete code import SwiftUI struct FolderOverviewItemView: View { @Environment(\.colorScheme) var colorScheme @Environment(\.horizontalSizeClass) private var horizontalSizeClass @Environment(\.verticalSizeClass) private var verticalSizeClass var title: String var description: String var icon: String var image: Image? = Image("dummy") var color: Color var body: some View { Grid { GridRow() { Color.clear Color.clear Color.clear Color.clear } GridRow() { Color.clear ZStack { Image(systemName: icon.isEmpty ? "book.pages.fill" : icon) .resizable() .scaledToFit() .scaleEffect(2.5) .foregroundStyle(.ultraThickMaterial) } .gridCellColumns(2) Color.clear } GridRow() { Color.clear Color.clear Color.clear Color.clear } .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) GridRow() { HStack(alignment: .top) { VStack(alignment: .leading) { Text(title) .font(.headline) .lineLimit(1, reservesSpace: true) if horizontalSizeClass == .regular { Text(description.isEmpty ? " " : description) .font(.caption) .lineLimit(2, reservesSpace: true) .truncationMode(.tail) } else { Text(description.isEmpty ? " " : description) .font(.caption) .lineLimit(2, reservesSpace: true) .truncationMode(.middle) } } } .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) .gridCellColumns(4) .padding() .background(.regularMaterial) } } .background( LinearGradient(gradient: Gradient(colors: [color.darken(by: -0.2), color.darken(by: 0.1)]), startPoint: .topLeading, endPoint: .bottomTrailing) ) } }
Posted
by H073.
Last updated
.