如何在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;
}
}
;
答案 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
如果要将枚举值存储为整数,可以将枚举声明为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
答案 1 :(得分:0)
根据@cristik回答
实现这解决了我的问题,
let interval:NSMutableArray = [Color.red.rawValue,Color.black.rawValue];