ios - 枚举案例 '...' 不是类型 '...' 的成员

标签 ios swift

我有一个枚举:

enum State {
    case FullOpen
    case HalfOpen
    case Closed
}

和这段代码:

var stateForConversionView: State!
...


var previousState: State!

if true {
    previousState = stateForConversionView!
    switch previousState {
    case .FullOpen:
        stateForConversionView = .HalfOpen
    case .HalfOpen:
        stateForConversionView = .FullOpen
    case .Closed:
        stateForConversionView = .HalfOpen
    default:
        break
    }
}

我在每个 switch 语句上都遇到错误:

Enum case 'FullOpen' not found in type 'State!'
Enum case 'HalfOpen' not found in type 'State!'
Enum case 'Closed' not found in type 'State!'

我真的不明白为什么。有人可以解释一下吗?

最佳答案

这样就可以正常工作了:

if true {
    previousState = stateForConversionView

    switch previousState! {
    case .FullOpen:
        stateForConversionView = .HalfOpen
    case .HalfOpen:
        stateForConversionView = .FullOpen
    case .Closed:
        stateForConversionView = .HalfOpen
    default:
        break
    }
}

您需要添加!

有关更多信息,请参阅 THIS .

关于ios - 枚举案例 '...' 不是类型 '...' 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085936/

相关文章:

ios - 根据 key 的值从字典的 NSArray 中获取公共(public)元素

ios - 显示键盘时隐藏 UITextField

ios - 如何在ios中格式化数字

swift - 在 MusicSequenceUserCallback 中传递的函数参数

java - 这个 Java 是否很好地近似了 @UIApplicationMain 在 Swift 中的工作方式?

ios - 在 UILabel 中启用多行对齐

ios - 如何在 Swift 中通过按下按钮来增加标签值

ios - <input type ="number"/> 在 iOS 上不显示数字键盘

ios - 推送通知工作但未定义 connectEd Fcm()

ios - 为什么 audioRecorderDidFinishRecording 没有被调用?能够成功录制和播放音频