Swift:无法创建嵌套枚举类型的空数组

标签 swift

我正在尝试声明一个空的枚举数组,该数组定义在另一个类中,如下所示,但出现以下错误:

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/

相关文章:

ios - OpenCV matchShapes() 输出值

ios - URLSession.Datatask 返回 0 字节数据

ios - UITextView/UILabel Swift 中每个链接的不同文本属性

swift - 区分天数并快速显示标签

ios - SwiftUI 中的 textFieldDidBeginEditing 和 textFieldDidEndEditing

swift - 无效更新 : invalid number of rows in section 0, 更新后现有节中包含的行数

json - 如何在 Swift 中解码 HTML 实体?

ios - 为什么我的应用程序不显示要求访问用户位置的警报?

ios - 用于 MIDI 播放和录音的 AVAudioEngine 同步

Swift 2.0 GeoCoder 参数列表