我试图在另一个类中声明一个空数组的枚举,如下所示,并收到以下错误:
- 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在另一个类中定义时,这似乎只是一个问题,因为这有效:
- enum OtherEnum {
- case ThingOne
- case ThingTwo
- }
- var emptyArrayTwo = [OtherEnum]()
- emptyArrayTwo.append(.ThingTwo)
我认为这是一个Swift错误.这也有效.
- var emptyEnumArray = Array<OuterClass.MyEnum>()
这个问题让我回想起a question in apple Swift tutorial.