将 NSNumber 数组转换为 Swift 枚举

问题描述 投票:0回答:1

我想从具有相同枚举值但在 Swift 中的 NSNumber 的 Objective-C 数组填充此函数。我想知道是否有一种快速的方法可以做到这一点:

enum Action {
  case blockSpace
  case leaveSpace
  case muteSpace
  case unmuteSpace
}

func createActions(_ actions: [NSNumber]) -> [Action] {
  // Populate this function.
}
arrays swift enums
1个回答
0
投票

你的枚举应该有代表 NSNumber 值的具体类型,即 Integer。

enum Action: Int {
  case blockSpace  // 0
  case leaveSpace  // 1
  case muteSpace   // 2
  case unmuteSpace // 3
}

func createActions(_ actions: [NSNumber]) -> [Action] {
    actions.compactMap { Action(rawValue: $0.intValue) 
}
© www.soinside.com 2019 - 2024. All rights reserved.