我计划基于使用下面详细介绍的 Habit 结构来永久存储数据,该结构使用 HabitEggButton 结构来使用 Habit 结构中的数据来呈现按钮。每个习惯结构都有一个关联的名称和一个布尔值来跟踪是否应该显示它。
习惯:
struct Habit : Identifiable {
let id = UUID()
var habitName: String
var isDisplayed = true
}
习惯蛋按钮:
struct HabitEggButton: View {
@Binding var habit : Habit
@Binding var displayHabit: String
var body: some View {
Button(action: {
print(habit.habitName + " button tapped")
if habit.isDisplayed {
self.displayHabit = self.habit.habitName
print("Yes")
}
else {
print("No")
}
}) {
Image("egg_uncracked")
.resizable()
.frame(width: 120, height: 120)
}
.supportsLongPress {
habit.isDisplayed = false
self.displayHabit = " "
print(habit.habitName + " button held")
}
}
}
我在网上搜索,据我了解,有一些选择,但我不太确定最佳的方法是什么。我偶然发现了 UserDefaults 和 SwiftData(它使用 @Model 但我不认为我可以将它与结构一起使用?)。任何建议都会很棒!谢谢!
您的选择是:
应用程序存储 适用于非常基本的数据,例如游戏中的高分。
文件文档 适合文本或图像编辑器。
SwiftData 适合盒子应用程序,例如食谱库。