我正在使用
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!" ) }