В моем коде 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") }
}
Интересно, смогу ли я сделать это более компактным. Например, я бы избегал повторения строкового литерала как в функциях получения, так и в функциях установки, как в let s = "bo"
. Возможно ли это каким-то образом?
Кроме того, мне интересно, смогу ли я превратить этот повторяющийся шаблон в еще более короткий код, как я мог бы сделать с классами и дженериками или с помощью макроса #define
в C. Хотя, вероятно, это лучше задать в отдельном вопросе. Если у вас есть предложение по этому поводу, но на него пока нет ответа, просто добавьте комментарий, и я задам новый вопрос.