如何在带有swiftUI列表的切换中使用json属性?

时间:2020-06-01 08:42:51

标签: json swift swiftui toggle


我为iPhone / iPad / Mac开发了SwiftUI应用。该应用程序列出了我的电影(第一张视图),其中包含每部电影的注释以及看过电影的信息。

我有一个JSON文件,其中包含:

  1. id:整数,唯一标识符
  2. nom:字符串,电影名称
  3. idL:字符串,标题的第一个字符
  4. note:整数,每部电影的注释(0到10之间)
  5. isShow:布尔,指出是否看过电影

我创建了一个切换开关,仅显示isShow = false的电影,但我无法将此切换开关与JSON属性链接...

这是我的项目:https://github.com/thomjlg/Films-APP
JSON文件:https://gist.githubusercontent.com/thomjlg/0782e9e8e27c346af3600bff9923f294/raw/9705fb0c6b40eae59578755b86e331bea257972b/films2.json

1 个答案:

答案 0 :(得分:2)

我相信在保存movies时,您不会重新加载userData

Toggle("Film", isOn: self.$movie.isShow)
    .onTapGesture {
        self.userData.fetcher.save(movies: self.userData.movies)
        self.movie.isShow = !self.movie.isShow
        print(self.movie.isShow)
    }

fetcher.save(movies:)仅保存您的电影,但是UserData仅创建一次,并且电影仅在init中加载:

window.rootViewController = UIHostingController(rootView: contentView
    .environmentObject(UserData())
)
init() {
    fetcher.load { (movies) in
        if let movies = movies {
            self.movies = movies
        }
    }
}