问题描述
我有一个列表,用户可以在其中选择喜欢的物品,然后切换过滤器。我实质上是在跟踪苹果tutorial。但是,当我杀死该应用程序时,收藏夹并没有保留。
看着调试器,我可以看到正在更新的对象。
添加收藏夹后:
User week picked: Week 1,isfavorite: true,showfav Toggle: false
0 Week(id: 27BECDEE-B762-4B9B-8948-22B12923422D,title: "Week 1",text: "SFF v2.0",image: "SoFuckingFit2.0_(week_1)",week: 2,show: false,isFavorite: true)
在两种情况下,isFavorite
是true
。
Button(action: {
self.userData.week[self.favoriteIndex]
.isFavorite.toggle()
print(self.favoriteIndex,self.weeks)
self.userData.save()
print(self.userData.save())
}){
if self.userData.week[self.favoriteIndex]
.isFavorite{
Image(systemName: "star.fill")
.foregroundColor(Color.yellow)
} else {
Image(systemName: "star")
.foregroundColor(Color.gray)
}
}
解决方法
JSON文件是静态文件,不会更改。
- 从JSON文件和JSON文件创建的数据不再相关
- 从文件中创建对象时,只有某些对象存在于应用程序内存中,并且在应用程序关闭后会被删除。
- 文件不知道从他那里创建的对象。
- 如果您要保存使用从静态JSON创建的对象更改的数据,则不需要使用Core Data,Realm(可能是UserDefaults),Firebase或其他类型的本地或远程数据库。
更改后,您必须将数据写入文件并从文件中加载