【发布时间】:2021-12-06 21:53:58
【问题描述】:
为什么不使用基于结构的单例?
我创建了可解码的基于结构的单例。
struct Person: Decodable {
static var shared = Person()
private(set) var name: String?
var age: Int?
private init() {
}
mutating func initData(from data: Data) {
if let person = try? JSONDecoder().decode(Person.self, from: data) {
self = person
}
}
}
像这样从其他类初始化:
Person.shared.initData(from: data)
并使用参数:
let name = Person.shared.name
Person.shared.name = "MyName" //error
Person.shared.age = 20
这是错误的方式吗?
【问题讨论】:
标签: swift struct singleton swift5