【发布时间】:2020-04-19 19:34:30
【问题描述】:
我是 Swift 的新手,我正在为我的项目研究功能标志概念,但我一直坚持使用可编码作为默认标志值。目前我的代码看起来像这样
import Foundation
class KillSwitches: Codable {
public enum CodingKeys: String, CodingKeys {
case featureOne
case featureTwo
case featureThree
}
let featureOne: Bool = true
let featureTwo: Bool = true
let featureThree: Bool = false
}
我有内部帮助类,可以帮助对 json 文件中的所有值进行编码和解码,这就是为什么这里没有明确提到它的原因。在此实现之前,我没有任何默认值,而是使用 struct 从远程配置文件中读取所有内容,该文件运行良好。现在,如果远程配置文件无法访问,我将在下一步中为我的功能设置默认值。
我期待我可以初始化这个类,所以我会得到一个具有默认值的类的对象,就像我从远程文件中读取时得到的一样。
如果不传递 init(来自解码器:),我无法实例化此类。我什至试过做
KillSwitches.init(from: KillSwitches.self) 也不起作用,我得到 Type 不符合预期的解码器类型。
我的 Json 看起来像这样
{
"featureOne" : false,
"featureTwo" : true,
"featureThree" : true
}
非常感谢任何解决此问题的指导/指针。
【问题讨论】: