如何在 swift 中将枚举存储到可变数组中



我如何在 Swift 的可变数组中存储枚举?

下面讨论了Objective-C,显然它工作正常。如何在 NSMutableArray 中存储枚举值

它被存储为整数值使用array.addObject(0);

你的意思是这样?

enum MyEnum {
    case Option1,
    Option2,
    Option3,
    Option4
}
var array: [MyEnum] = [.Option1, .Option2]
array.append(.Option3)
let b = MyEnum.Option4
array.append(b)
array[2] // Option3

如果要将枚举值存储为整数,可以将枚举声明为具有rawValue作为Int,并在数组中使用 rawValue 属性:

enum MyEnum: Int {
    case Option1,
    Option2,
    Option3,
    Option4
}
var array: [Int] = [MyEnum.Option1.rawValue, MyEnum.Option2.rawValue]
array.append(MyEnum.Option3.rawValue)
let b = MyEnum.Option4
array.append(b.rawValue)
(array as NSArray).objectAtIndex(2) // a NSNumber with value 2
根据

@cristik答案实现

这解决了我的pblm,

let intervals: NSMutableArray = [Color.red.rawValue, Color.black.rawValue];

最新更新