2015-09-28 24 views
7

我想如下声明枚举的空数组另一个类的内部定义,并正在以下错误:斯威夫特:无法创建嵌套的枚举类型的空数组

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) 

有关为什么第一个代码段不起作用的想法?这是一个语言错误吗?

+0

自己看着它,看起来很像一个bug是。您是否尝试过在编译器警告关闭的情况下运行它? –

回答