在swift storyboard中制作关卡

  • 本文关键字:swift storyboard swift
  • 更新时间 :
  • 英文 :


我想制作一个通过改变速度来创建不同关卡的应用程序。但是我得到了'预期参数类型':'"错误,我不知道如何使用enum。

enum Difficulty {
case easy(timeInterval: 1)
case medium(timeInterval: 0.6)
case hard(timeInterval: 0.3)
}

@IBAction func easyButton(_ sender: Any) {

}
@IBAction func mediumButton(_ sender: Any) {
}
@IBAction func hardButton(_ sender: Any) {
}

override func viewDidLoad() {
super.viewDidLoad()
}

不能硬编码枚举大小写的相关值。相反,声明一个属性,该属性将为每种情况返回所需的值:

enum Difficulty {
case easy
case medium
case hard
var timeInterval: TimeInterval {
switch self {
case .easy:
return 1
case .medium:
return 0.6
case .hard:
return 0.3
}
}
}

用法:

let difficulty: Difficulty = .easy
let timeInterval = difficulty.timeInterval

由于语法错误,您的代码未编译。为了解决你的任务,你可以从Double继承enum,并使用rawValue来获得难度值(https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html#ID149)。

enum Difficulty: Double {
case easy = 1
case medium = 0.6
case hard = 0.3
}
let timeInterval = Difficulty.medium.rawValue
print(timeInterval) // Prints "0.6"

最新更新