ios - 在 swift 2.0 中使用枚举字符串类型作为字典键

标签 ios swift dictionary enums

我有一个枚举

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。如何解决这个问题。

最佳答案

两件事。

  1. 在 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/

相关文章:

arrays - 对于 map React.js 中的循环

iOS8 对尚未渲染的 View 进行快照会导致快照为空

iphone - 当用户点击 iOS 中的详细信息附件按钮时显示什么?

ios - 如何删除多个并行数组中的重复数据

swift - 如果我对一个类进行子类化,我可以指定一个实例变量应该是某个子类吗?

python - 绘制基于 ssr 的格兰杰因果关系 : pulling values from list within a dictionary within a dictionary

ios - 我是否需要包含整个 SDWebImage 库以在 UICollectionView 中下载图像?

iOS 应用程序,以编程方式获取构建版本

ios - 如何使用 AFNetworking 检索 JSON 多数据?

python - 在 python 中——如何将项目转换为字典?