我正在使用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
使它工作。
有快速转换方法吗?
答案 0 :(得分:4)
您可以使用map()
方法(Sequence
协议)将每个枚举映射到其整数原始值:
func byTypePredicate(periods: [Period]) -> NSPredicate {
let intPeriods = periods.map { $0.rawValue } // [Int]
return NSPredicate(format: "period IN %@", intPeriods)
}