2014-06-09 37 views
3

我想将一个枚举类型添加到数组中,并且出现错误。我能够添加一个字符串和其他类型,但是这个枚举失败。有人知道这里可能会出现什么问题吗?将枚举类型添加到Swift数组时出错

enum Domain { 
    case Default 
} 

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

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

回答

3

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

将第二种情况添加到您的枚举(例如,其他情况)并查看错误不再发生。当Enumeration只有一个案例时,Swift会发生一些疯狂的事情。

+0

错误提交:17231673 – banDedo

0

看起来,至少在我玩一个操场,如果枚举定义包含单词“域”在所有的任何地方在名称中枚举无法编译/工作。

0

我认为这只是苹果的部分编译错误......如果我有下面的代码,并且仅此代码,样样精运行:

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

enum TestEnum { 
    case TestValue 
    case SecondTestValue 
} 

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

RPN代码和TestEnum代码都可以自行运行。这几乎肯定是一个苹果的错误。

+0

现在我看到,即使我使用String [] –