【问题标题】:SwiftUI - UserDefaults array of strings errorSwiftUI - UserDefaults 字符串数组错误
【发布时间】:2021-08-05 23:50:03
【问题描述】:

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

class AppManagerModel: ObservableObject {
    @Published var userData = UserDefaults.standard.array(forKey: "userData") as? [String] ?? [String]()
}

然后当我尝试从视图更新该数据时

UserDefaults.standard.set(appManagerModel.userData.append("Test"), forKey: "userData")

我收到以下错误-“尝试为关键 userData 插入非属性列表对象 ()”

【问题讨论】:

  • 追加返回无效。追加然后设置。

标签: swift swiftui


【解决方案1】:

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 中,而不是将其放在 View 中。

【讨论】:

  • 非常感谢
猜你喜欢
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-03
  • 1970-01-01
  • 2016-06-11
  • 2020-06-02
相关资源
最近更新 更多