我正在尝试声明一个空的枚举数组,该数组定义在另一个类中,如下所示,但出现以下错误:
class OuterClass {
enum MyEnum {
case ThingOne
case ThingTwo
}
}
// Error: Invalid use of '()' to call a value of non-function type '[OuterClass.MyEnum.Type]'
var emptyEnumArray = [OuterClass.MyEnum]()
emptyEnumArray.append(.ThingOne)
但是,我可以毫无问题地如下声明数组:
// No errors
var emptyEnumArray: [OuterClass.MyEnum] = []
只有当枚举在另一个类中定义时,这才会出现问题,因为这是有效的:
enum OtherEnum {
case ThingOne
case ThingTwo
}
var emptyArrayTwo = [OtherEnum]()
emptyArrayTwo.append(.ThingTwo)
关于为什么第一个代码段不起作用的任何想法?这是语言错误吗?
最佳答案
我认为现在这是一个 Swift 错误。这也有效。
var emptyEnumArray = Array<OuterClass.MyEnum>()
这个问题让我想起了 a question in apple Swift tutorial .
关于Swift:无法创建嵌套枚举类型的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32833078/