[英]Is there a way to declare a constant inside a computed property in Swift 3?
我的Swift 3代码中有几个类似的属性:
var dinActive: Bool {
get { return UserDefaults.standard.bool (forKey: "bo", fallback: true) }
set { UserDefaults.standard.set (newValue, forKey: "bo") }
}
var spdif1Active: Bool {
get { return UserDefaults.standard.bool (forKey: "spdif1", fallback: true) }
set { UserDefaults.standard.set (newValue, forKey: "spdif1") }
}
我想知道是否可以使它更紧凑。 例如,我要避免在getter和setter函数中都重复字符串文字,就像let s = "bo"
。 有可能吗?
另外,我想知道是否可以将这种重复的模式制作成更短的代码,就像可以使用类和泛型或使用C中的#define
宏那样。尽管如此,最好在单独的问题中提出。 如果您对此有任何建议,但仍未得到答复,只需添加一条评论,我将提出一个新问题。
您可以在类之外为其创建一个let常量。 例如:
//declaring constant outside of class
let SPDif1Key: String = "spdif1"
class YourClass
{
var dinActive: Bool {
get { return UserDefaults.standard.bool (forKey: SPDif1Key, fallback: true) }
set { UserDefaults.standard.set (newValue, forKey: SPDif1Key) }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.