ios - 如何将枚举数组转换为整数数组

标签 ios swift

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

enum Period : Int {
   Daily
   Weekly
   Monthly
}

我的谓词是这样的:

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

我的问题是我不想在调用这个谓词时使用 Int 的,我想传递 Period 枚举,但是在谓词内部必须转换它到 Int 以使其工作。

有没有快速转换的方法?

最佳答案

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

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

关于ios - 如何将枚举数组转换为整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39731384/

相关文章:

ios - 如何使用 Swift 文档注释

ios - 如果不应该,则可选绑定(bind)成功

ios - iOS 中的稀疏图像匹配

ios - 如何以编程方式展开/折叠带有约束的垂直 UIViews 构建?

ios - 以编程方式快速添加约束

ios - AVPlayer 失败后不会播放新的 AVPlayerItem

swift - 如何检查表计数并在 swift iOS 的 if 语句中使用它

ios - 找不到目标平台的应用程序所需的 native 扩展 'file' 的实现

ios - SQLITE更新表问题

ios - 长按后滑动