SwiftData-Absturz: "Passieren Sie NIL für einen nicht optionalen Tastatur"IOS

Programmierung für iOS
Anonymous
 SwiftData-Absturz: "Passieren Sie NIL für einen nicht optionalen Tastatur"

Post by Anonymous »

Ich bin auf ein reproduzierbares Problem gestoßen, wenn ich SwiftData mit @Model-Klassen verwendet habe, die nicht optionale Wertstyp-Eigenschaften (Struktur) mit optionalen Eigenschaften enthalten. \ MyModel.myStruct < /p>
< /blockquote>
passiert sofort nach dem Versuch? modelContext.save () heißt.

Code: Select all

import SwiftData
import SwiftUI

struct ContentView: View {
@Environment(\.modelContext) private var modelContext
@Query(sort: \MyModel.name) private var models: [MyModel]
@State private var selectedModel: MyModel?

var body: some View {
NavigationStack {
List(models) { model in
Button(model.name) {
selectedModel = model
}
}
.navigationTitle("Models")
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Button("Add") {
let newModel = MyModel(name: "Test")
modelContext.insert(newModel)
try? modelContext.save()
selectedModel = newModel
}
}
}
.sheet(item: $selectedModel) { model in
Text("Editing \(model.name)")
}
}
}
}

@Model
class MyModel {
var name: String
var myStruct: MyStruct

init(name: String) {
self.name = name
self.myStruct = MyStruct(value: nil)
}
}

struct MyStruct: Codable {
var value: String?
}

@main
struct MinimalReproApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(for: MyModel.self)
}
}
Wenn ich die Eigenschaft in MyStruct ändere, ist es also nicht mehr optional, der Absturz tritt nicht mehr auf.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post