我有一个这样的枚举:
enum Environment {
case Production
case Staging
case Dev
}
我想在 NSUserDefaults 中保存一个实例,如下所示:
func saveEnvironment(environment : Environment){
NSUserDefaults.standardUserDefaults().setObject(environment, forKey: kSavedEnvironmentDefaultsKey)
}
我知道 Swift 枚举不是 NSObject,这使得保存变得困难,但我不确定将其转换为可存储的内容的最佳方法是什么。
使用 rawValue 作为枚举是使用可以存储在 NSUserDefaults 中的类型的一种方法,定义您的枚举以使用 rawValue。原始值可以是字符串、字符或任何整数或浮点数类型:
enum Environment: String {
case Production = "Prod"
case Staging = "Stg"
case Dev = "Dev"
}
您还可以直接使用 rawValue (可能来自 NSUserDefaults )创建一个枚举实例,例如:
let env = Environment(rawValue: "Dev")
您可以像这样从枚举对象中提取 rawValue (String),然后根据需要将其存储在 NSUserDefaults 中:
if let myEnv = env {
println(myEnv.rawValue)
}
func saveEnvironment(environment : Environment){
NSUserDefaults.standardUserDefaults().setObject(environment.rawValue, forKey: kSavedEnvironmentDefaultsKey)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)