我正在使用
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!" ) }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。