我第一次使用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())
}
}
}
型
当我按下“添加条目”按钮时,预览画布崩溃,什么也没有打印出来。我不知道出了什么问题。
1条答案
按热度按时间xpszyzbs1#
这里关于在对象中添加数组对象之前先执行.保存的技巧是kit。从我自己在应用程序中的测试来看,之后你不需要保存它。令人沮丧的是,崩溃和日志(隐藏在某个文件中)根本无法解释问题所在。