将枚举类型添加到Swift Array时出错

时间:2014-06-09 02:52:45

标签: ios swift

我正在尝试将枚举类型添加到数组中并且收到错误。我能够添加一个字符串和其他类型,但这个枚举失败了。有谁知道这里可能出了什么问题?

enum Domain {
    case Default
}

let domains: Array<Domain> = [.Default]

主题1:EXC_BAD_INSTRUCTION(代码= EXC_i386_INVOP,子代码= 0x0)

3 个答案:

答案 0 :(得分:3)

这绝对是一个Apple bug - 记录它! https://bugreport.apple.com

在枚举中添加第二个案例(例如案例其他)并查看错误不再出现。当Enumeration只有一个案例时,Swift会发生一些疯狂事情。

答案 1 :(得分:0)

看起来,至少在我玩游乐场时,如果枚举定义在名称中的任何地方都包含“域”这个词,则枚举无法编译/工作。

答案 2 :(得分:0)

我认为这只是Apple的一个编译器错误...如果我有以下代码,只有这个代码,一切运行良好:

var points = TestEnum[]()
points += TestEnum.TestValue

enum TestEnum {
    case TestValue
    case SecondTestValue
}

但是,我在代码之上有代码(一个简单的RPN实现,但没关系)。 RPN代码本身运行良好。但是在那里有TestEnum代码,RPN代码崩溃了。崩溃是一个EXC_BAD_ACCESS,并根据程序中的代码行在随机行和不同的地址崩溃(我猜是因为可执行文件中的偏移量发生了变化)。例如,我在points + = call之后添加了一个println,它在我的RPN代码的不同部分崩溃了。

RPN代码和TestEnum代码都可以自行运行。这几乎肯定是一个Apple漏洞。