我有一个枚举
enum FilterType:String {
case UnitSoldFilter = "UnitSoldFilter"
case AmountFilter = "AmountFilter"
}
我想要一个方法来保存相应的值
func getFilterForType(filterFor:FilterForType) -> NSData? {
if let data: NSData = NSUserDefaults.standardUserDefaults().objectForKey(filterKey) as? NSData{
return data
}
return nil
}
但是我收到错误,因为我们无法直接使用filterKey
。如何解决这个问题。
最佳答案
两件事。
- 在 Swift 2.0 中,您无需指定
Enum
对应的String
if 它们是相同的字符串。
所以
enum FilterType:String {
case UnitSoldFilter = "UnitSoldFilter"
case AmountFilter = "AmountFilter"
}
成为
enum FilterType:String {
case UnitSoldFilter
case AmountFilter
}
然后在您的方法内部,您将使用 rawValue
属性。
func getFilterForType(filterFor:FilterForType) -> NSData? {
if let data: NSData = NSUserDefaults.standardUserDefaults().objectForKey(filterKey.rawValue) as? NSData{
return data
}
return nil
}
这应该可以解决问题。
关于ios - 在 swift 2.0 中使用枚举字符串类型作为字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33286091/