微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

应用被杀死时,数据未保存在对象中

如何解决应用被杀死时,数据未保存在对象中

我有一个列表,用户可以在其中选择喜欢的物品,然后切换过滤器。我实质上是在跟踪苹果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)

在两种情况下,isFavoritetrue

这是按钮,其中包括保存功能

                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文件是静态文件,不会更改。

  1. 从JSON文件和JSON文件创建的数据不再相关
  2. 从文件中创建对象时,只有某些对象存在于应用程序内存中,并且在应用程序关闭后会被删除。
  3. 文件不知道从他那里创建的对象。
  4. 如果您要保存使用从静态JSON创建的对象更改的数据,则不需要使用Core Data,Realm(可能是UserDefaults),Firebase或其他类型的本地或远程数据库。
,

更改后,您必须将数据写入文件并从文件中加载

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。