我要声明两个字符串
public static let FILTER_PERIODS_KEY = "fi_pe"
public static let FILTER_PERIODS_DEFAULT = "M1,M5,M15,M30,H1,H4,D1"
并以这种方式使用它们:
if (preferences.object(forKey: InAppProperties.FILTER_PERIODS_KEY) == nil) {
preferences.set(InAppProperties.FILTER_PERIODS_DEFAULT, forKey: InAppProperties.FILTER_PERIODS_KEY)
}
由于某些原因FILTER_PERIODS_KEY不为空,而FILTER_PERIODS_DEFAULT为空。
这是什么?
答案 0 :(得分:0)
代码看起来正确:FILTER_PERIODS_DEFAULT
用作值,而FILTER_PERIODS_KEY
用作键。
但是,您为UserDefaults
定义默认值的方法是错误的。
尽快(在awakeFromNib
或applicationWillFinishLaunching
中添加
let defaults = UserDefaults.standard
let defaultValues = [InAppProperties.FILTER_PERIODS_KEY: "M1,M5,M15,M30,H1,H4,D1"]
defaults.register(defaults: defaultValues)
即使值同时更改,每次启动应用程序也必须执行代码。