Swift 具有良好的编程风格和可选功能
我想从NSUserdefaults中读取枚举参数。如果Userdefaults中没有任何设置,我希望它默认为某个值。有没有比我在这里用“if let”语句做的更好的方法(更优雅)呢?由于这是一个单例,我希望使用Swift 具有良好的编程风格和可选功能,swift,optional,Swift,Optional,我想从NSUserdefaults中读取枚举参数。如果Userdefaults中没有任何设置,我希望它默认为某个值。有没有比我在这里用“if let”语句做的更好的方法(更优雅)呢?由于这是一个单例,我希望使用 如果GameState.learnLevel==Level.low{..} 我该怎么做 class GameState { var learnLevel:Level enum Level:Int { case low = 1,medium,high } class var sh
如果GameState.learnLevel==Level.low{..}
我该怎么做
class GameState {
var learnLevel:Level
enum Level:Int {
case low = 1,medium,high
}
class var sharedInstance: GameState {
return _SomeManagerSharedInstance
}
init(){
// load games state
let learnLevel = Level(rawValue: NSUserDefaults.standardUserDefaults().integerForKey("learnLevel"))
if let learnLevel1 = learnLevel {self.learnLevel = learnLevel1} else {self.learnLevel = Level.low}
}
使用
nil
合并??
:
let learnLevel = Level(rawValue: NSUserDefaults.standardUserDefaults().integerForKey("learnLevel"))
self.learnLevel = learnLevel ?? Level.low
除了输入正确的换行符之外,这似乎还可以。您正在从NSUserDefaults获取一个可能不存在的值,并从中设置一个必需的属性。如果没有线断,虽然很难看到你在做什么。