gpt4 book ai didi

ios - 将结构保存到 UserDefaults

转载 作者:IT王子 更新时间:2023-10-29 04:59:43 25 4
gpt4 key购买 nike

我有一个要保存到 UserDefaults 的结构。这是我的结构

struct Song {
var title: String
var artist: String
}

var songs: [Song] = [
Song(title: "Title 1", artist "Artist 1"),
Song(title: "Title 2", artist "Artist 2"),
Song(title: "Title 3", artist "Artist 3"),
]

在另一个 ViewController 中,我有一个 UIButton 像这样附加到这个结构上

@IBAction func likeButtonPressed(_ sender: Any) {   
songs.append(Song(title: songs[thisSong].title, artist: songs[thisSong].artist))
}

我想要它,以便每当用户也单击该按钮时,它会将结构保存到 UserDefaults,这样每当用户退出应用程序然后再次打开它时,它就会被保存。我该怎么做?

最佳答案

在 Swift 4 中,这非常简单。只需将结构标记为采用 Codable 协议(protocol),即可使您的结构可编码:

struct Song:Codable {
var title: String
var artist: String
}

现在让我们从一些数据开始:

var songs: [Song] = [
Song(title: "Title 1", artist: "Artist 1"),
Song(title: "Title 2", artist: "Artist 2"),
Song(title: "Title 3", artist: "Artist 3"),
]

以下是如何将其放入 UserDefaults 中:

UserDefaults.standard.set(try? PropertyListEncoder().encode(songs), forKey:"songs")

下面是如何稍后再将其取回:

if let data = UserDefaults.standard.value(forKey:"songs") as? Data {
let songs2 = try? PropertyListDecoder().decode(Array<Song>.self, from: data)
}

关于ios - 将结构保存到 UserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44876420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com