首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法在Swift 3中的计算属性中声明常数?

是否有方法在Swift 3中的计算属性中声明常数?
EN

Stack Overflow用户
提问于 2017-06-02 10:57:54
回答 1查看 199关注 0票数 0

我的Swift 3代码中有几个类似的属性:

代码语言:javascript
复制
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宏那样,也许最好用单独的问题来问。如果你对此有一个建议,但它还没有得到答复,只需添加一个评论,我将对它提出一个新的问题。

EN

回答 1

Stack Overflow用户

发布于 2017-06-02 11:08:44

您可以在类之外为其创建let常量。例如:

代码语言:javascript
复制
//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) }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44327273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档