【问题标题】:Swift 2 - switch statement giving me errorsSwift 2 - switch 语句给我错误
【发布时间】:2015-10-24 09:00:50
【问题描述】:

我不知道出了什么问题,但是下面的代码在 switch 语句中给了我很多错误:

enum GameState {
    case Start
    case Tutorial
    case Play
    case ShowingScore
    case GameOver
}

在 GameScene 类中:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)

        switch GameState {
        case .Start: break
        case .Tutorial: break
        case .Play:
            beginningTouchPosition = location
            tappedForBird = true
            break
        case .ShowingScore: break
        case .GameOver: break
        }
    }

}

我得到的错误信息是:

  1. 类型名称后的预期成员名称或构造函数调用(这在 switch GameState 行中)
  2. 在“GameState”类型中找不到枚举案例“Start”(我不仅为 .Start 找到了这个,而且为每个 GameState 案例都找到了这个)

【问题讨论】:

  • 你不应该在 switch 块中放一个变量而不是数据类型吗?
  • 我很确定我以前是这样用过的,而且效果很好..
  • 您可能有一个与数据类型同名但大小写不同的变量(例如 gameStateGameState 的实例一样)
  • 你是对的!我在 GameScene 类的开头添加了 'var gameState = GameState.Start',现在可以使用了,谢谢 :)

标签: swift swift2 xcode7 swift2.1


【解决方案1】:

您正在打开枚举类型 GameState
您应该打开一个包含GameState 一种情况的变量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多