xcode – Swift使用如果在枚举导致错误不能转换为’_ArrayCastKind’

我正在使用 xcode 6的Beta 3,而且我将一个简单的if语句对一个枚举传递给一个闭包的参数有一个问题.这里是简单的枚举定义:
enum FLSTeslaLoginStatus {
    case LoggedOut
    case LoggedIn
    case LoggingIn
    case LoginFailed(NSData!,NSHTTPURLResponse!,NSError)
}

而错误的代码是:

正如你可以看到switch语句工作正常,但如果检查导致错误.这只是一些测试代码,所以我通常不会有一个switch和一个if语句,但是我试图弄清楚if语句有什么问题.我以为这是一个编译器的bug.

Swift 2.0支持这一点,使用“if case”.

解决方法

Swift 2.x允许通过if case模式匹配: https://www.natashatherobot.com/swift-2-pattern-matching-with-if-case/
if case let .LoggedIn(name,password) = status  {
   print( "\(name) Logged in!" )
}

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...