SwiftUI-UserDefaults字符串数组错误
我在尝试将字符串数组保存到UserDefaults时遇到问题。我有一个简单的ObservieObject,它有一个属性:SwiftUI-UserDefaults字符串数组错误,swift,swiftui,Swift,Swiftui,我在尝试将字符串数组保存到UserDefaults时遇到问题。我有一个简单的ObservieObject,它有一个属性: class AppManagerModel: ObservableObject { @Published var userData = UserDefaults.standard.array(forKey: "userData") as? [String] ?? [String]() } 然后当我试图从视图中更新数据时 UserDefaults.
class AppManagerModel: ObservableObject {
@Published var userData = UserDefaults.standard.array(forKey: "userData") as? [String] ?? [String]()
}
然后当我试图从视图中更新数据时
UserDefaults.standard.set(appManagerModel.userData.append("Test"), forKey: "userData")
我收到以下错误-“尝试为关键用户数据插入非属性列表对象()”
Array.append
返回Void
。您需要附加到数组,然后设置
class AppManagerModel: ObservableObject {
@Published var userData = UserDefaults.standard.array(forKey: "userData") as? [String] ?? [String]()
func addUserData(_ data: String) {
userData.append(data)
UserDefaults.standard.set(userData, forKey: "userData")
}
}
将持久性逻辑隐藏在
AppManagerModel
中,而不是将其放在视图中。那就开始吧。非常感谢