如何在swift中将枚举存储到Mutable Array中

时间:2016-01-21 10:00:53

标签: ios swift ios9

如何在Swift中将可变数组中的枚举存储起来?

下面讨论Objective-C,显然它工作正常。 How to store enum values in a NSMutableArray

使用@Directive({ selector:"[mySelectedColor]", host: { // '(keyup)': 'changeColor()', // '[style.color]': 'selectedColor', } }) export class selectedColorDirective { @Input() selectedColor: string = ''; constructor(el: ElementRef, renderer: Renderer) { this.el=el; this.el.nativeElement.style.backgroundColor = 'pink'; // renderer.setElementStyle(el, 'backgroundColor', this.selectedColor); } changeColor(clr) { console.log('changeColor called ' + clr); //console.log(this.el.nativeElement); this.el.nativeElement.style.backgroundColor = clr; } } ;

存储int值

2 个答案:

答案 0 :(得分:5)

你的意思是这样吗?

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

如果要将枚举值存储为整数,可以将枚举声明为rawValueInt并使用数组中的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

答案 1 :(得分:0)

根据@cristik回答

实现

这解决了我的问题,

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