Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI-UserDefaults字符串数组错误_Swift_Swiftui - Fatal编程技术网

SwiftUI-UserDefaults字符串数组错误

SwiftUI-UserDefaults字符串数组错误,swift,swiftui,Swift,Swiftui,我在尝试将字符串数组保存到UserDefaults时遇到问题。我有一个简单的ObservieObject,它有一个属性: class AppManagerModel: ObservableObject { @Published var userData = UserDefaults.standard.array(forKey: "userData") as? [String] ?? [String]() } 然后当我试图从视图中更新数据时 UserDefaults.

我在尝试将字符串数组保存到UserDefaults时遇到问题。我有一个简单的ObservieObject,它有一个属性:

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
中,而不是将其放在
视图中。那就开始吧。非常感谢