gpt4 book ai didi

swift - 良好的编程风格与可选

转载 作者:可可西里 更新时间:2023-11-01 01:06:29 25 4
gpt4 key购买 nike

我想从 NSUserdefaults 中读取一个枚举参数。如果 Userdefaults 中没有设置任何内容,我希望它默认为某个值。有没有比我在这里使用“if let”语句所做的更好(更优雅)的方法来做到这一点?因为这是一个单例,所以我想使用

访问代码其他部分的值

if 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 合并 operator ??:

    let learnLevel = Level(rawValue: NSUserDefaults.standardUserDefaults().integerForKey("learnLevel"))        
self.learnLevel = learnLevel ?? Level.low

关于swift - 良好的编程风格与可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27500668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com