我在我的应用程序中添加了一些语法糖,但我遇到了“不一致”。可能有很好的理由,但是有没有办法稍微清理一下实现。我这样做是为了提供一个地方来设置/获取一些属性。
enum MyType: String {
case Unknown, First, Second
var enabled: Bool {
set { UserDefaults.standard.set(newValue, forKey: self.rawValue) }
get { return UserDefaults.standard.bool(forKey: self.rawValue) }
}
}
Run Code Online (Sandbox Code Playgroud)
现在我可以使用枚举值来获取默认值
if MyType.First.enabled {
........
}
Run Code Online (Sandbox Code Playgroud)
但我不能直接设置值:
MyType.First.enabled = true
Run Code Online (Sandbox Code Playgroud)
引发“无法设置属性,第一个不可分配”
但我可以逃脱
var type = MyType.First
type.enabled = true
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以使用单行方法?