I was using this code prior to using UserDefaults , all worked well -
class Songs: ObservableObject {
@Published var songs: [Song]
init(){
self.songs =
[
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
]
}
}
Now i wanted to save the data permanently , but as the data was trivial i did not use core data , insead went for UserDefaults and used the code below, and now the code does not show the data in list etc, how can i make this work with UserDefaults, thanks
class Songs: ObservableObject {
var songsData =
[
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
Song(name: "demo", album: "demo", genre: "demo", artist: "demo"),
]
@Published var songs: [Song] {
didSet {
UserDefaults.standard.set(songsData, forKey: "demosongs")
}
}
init(){
self.songs = UserDefaults.standard.object(forKey: "demosongs") as? [Song] ?? [Song.default]
}
}