【发布时间】:2014-07-10 03:54:20
【问题描述】:
我正在使用 xcode 6 的 Beta 3,并且在针对传递给闭包参数的枚举执行简单的 if 语句时遇到问题。这是简单的枚举定义:
enum FLSTeslaLoginStatus {
case LoggedOut
case LoggedIn
case LoggingIn
case LoginFailed(NSData!, NSHTTPURLResponse!, NSError)
}
而出现错误的代码是:
如您所见,switch 语句工作正常,但 if 检查导致错误。这只是一些测试代码,所以我通常不会有 switch 和 if 语句,但我试图找出 if 语句有什么问题。我认为这是一个编译器错误。
在 Swift 2.0 中使用“if case”支持这一点。
【问题讨论】:
-
看起来如果枚举的任何情况都有关联的值,您必须使用 switch-statement 来测试它。是时候提交错误报告了(至少错误消息需要有意义)。将枚举与自身进行比较时也会出现相同的错误。即
t == t. -
奇怪的是,如果我使用快捷方式
.LoggedIn,我会收到错误,但如果它是完全限定的,则不会。 -
这几乎可以肯定是一个错误,提交雷达。
-
凯文,我也一样。如果完全合格,则可以正常工作。