如何将枚举存储到 swift 中的可变数组中
How to store enum into Mutable Array in swift
请问如何将枚举存储在 Swift 中的可变数组中?
下面针对 Objective-C 进行了讨论,显然它工作正常。
How to store enum values in a NSMutableArray
使用array.addObject(0)
;
存储int值
你的意思是这样的?
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 的回答实现
这解决了我的问题,
让间隔:NSMutableArray = [Color.red.rawValue, Color.black.rawValue];
请问如何将枚举存储在 Swift 中的可变数组中?
下面针对 Objective-C 进行了讨论,显然它工作正常。 How to store enum values in a 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 的回答实现
这解决了我的问题,
让间隔:NSMutableArray = [Color.red.rawValue, Color.black.rawValue];