SwiftData导致Xcode预览在数组追加时崩溃

vlju58qv  于 2024-01-05  发布在  Swift
关注(0)|答案(1)|浏览(162)

我第一次使用SwiftData,使用的模型如下:

enum AccountEntryValue: Codable {
    case number(CGFloat)
    case cadence(DuedateCadence)
    case date(Date)
}

@Model
final class AccountEntry {
    @Attribute(.unique) var uuid: UUID
    var entryDate: Date
    var data: [String: AccountEntryValue]
    init() {
        uuid = UUID()
        entryDate = Date.now
        data = [:]
    }
}

@Model
class AccountModel {
    @Attribute(.unique) var uuid: UUID
    let name: String
    var type: AccountType
    var entries: [AccountEntry]
    
    init(name: String, type: AccountType) {
        self.name = name
        uuid = UUID()
        self.type = type
        entries = []
    }
    
    func addEntry(_ entry: AccountEntry) {
        entries.append(entry)
    }
}

字符串
我为预览初始化设置如下

#Preview {
    let config = ModelConfiguration(isStoredInMemoryOnly: false)
    let container = try! ModelContainer(for: AccountModel.self, configurations: config)
    
    return VStack {
        AccountView(model: AccountEntry())
    }.modelContainer(container)
}


然后我有代码在那里,

struct AccountView: View {
  var model: AccountModel
  var body: some View {
    Button("Add Entry") {
      model.addEntry(AccountEntry())
    }
  }
}


当我按下“添加条目”按钮时,预览画布崩溃,什么也没有打印出来。我不知道出了什么问题。

xpszyzbs

xpszyzbs1#

这里关于在对象中添加数组对象之前先执行.保存的技巧是kit。从我自己在应用程序中的测试来看,之后你不需要保存它。令人沮丧的是,崩溃和日志(隐藏在某个文件中)根本无法解释问题所在。

相关问题