【发布时间】:2023-01-21 18:37:44
【问题描述】:
在 SwiftUI 中,我正在尝试创建一个符合 Codable 的类(因此我可以将其保存在 @AppStorage 中),并具有 @Published 属性,因此它可以作为 EnvironmentObject 传递。
This教程给了我下面的例子:
class User: ObservableObject, Codable {
enum CodingKeys: CodingKey {
case name
}
@Published var name = "Bob Smith"
required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
name = try container.decode(String.self, forKey: .name)
}
func encode(to encoder: Encoder) throws {
...
}
}
我想知道如何将 String 传递给类初始值设定项。 (即var user = User("Bob Smith")
除非我弄错了,required 意味着所有实例和子类都必须使用该初始化程序。鉴于 name 已在现有初始化程序中分配,我将如何将自定义名称传递到此类的初始化程序中?
【问题讨论】:
标签: swift swiftui codable observedobject