如何将枚举数组转换为int数组

时间:2016-09-27 17:59:15

标签: ios swift

我正在使用Core Data,我的一个谓词根据以下枚举检索数据:

enum Period : Int {
   Daily
   Weekly
   Monthly
}

我的谓词是这样的:

public static func byTypePredicate(periods: [Int]) -> NSPredicate {
    return NSPredicate(format: "period IN %@", periods)
}

我的问题是我在调用此谓词时不想使用Int's,我想传递Period枚举,但在谓词内部必须将其转换为Int使它工作。

有快速转换方法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用map()方法(Sequence协议)将每个枚举映射到其整数原始值:

func byTypePredicate(periods: [Period]) -> NSPredicate {
    let intPeriods = periods.map { $0.rawValue } // [Int]
    return NSPredicate(format: "period IN %@", intPeriods)
}