私はRoShamboを再生するために私のアプリでいくつかの進歩を遂げましたが、1つの特定のことに困惑しています。 1つのViewControllerでは、クラスの2つのプロパティを設定しました。後で整数でクラス内でswitch文を使うので、それらを整数にしたい。私が言って整数を使用する場合しかし、私はエラーを取得する:私は私の保存されたプロパティのoptionalsを作る場合Switch文でオプションのIntsを使用する方法
"Class 'ResultsViewController' has no initializers"
"stored property 'your play' without initial value prevents synthesized initializers"
は今、これらのエラーが離れて行くが、それは、整数ではなく、optionalsを使用しているので、私は私のswitch文でエラーが発生します。
私は以下の2つの質問があります:1)以下のswitch文で、どのように "Int"型の値を使用しますか? switch文で?
2)私のオプションの値がnilの場合、どのようにしてプログラムを終了し、switch文を実行できないのでしょうか?比較を行うのは意味がないでしょうか?
import Foundation
import UIKit
class ResultsViewController: UIViewController {
// MARK: Properties
var opponentPlay: Int?
var yourPlay: Int?
//Mark: Outlets
@IBOutlet weak var MatchResult: UILabel!
@IBOutlet weak var PlayAgainButton: UIButton!
//Mark: Life Cycle
override func viewWillAppear(_ animated: Bool){
//unwrap optional properties
if let opponentPlay = opponentPlay {
print("good play")
} else {
print("opponentPlay is nil")
}
if let yourPlay = yourPlay {
print("good play")
} else {
print("opponentPlay is nil")
}
switch (opponentPlay, yourPlay) {
case (1, 1), (1, 1), (2, 2), (2, 2), (3, 3), (3, 3):
self.MatchResult.text = "You Tie!"
case (1, 2):
self.MatchResult.text = "You Win!"
case (2, 1):
self.MatchResult.text = "You Lose!"
case (1, 3):
self.MatchResult.text = "You Lose!"
case (3, 1):
self.MatchResult.text = "You Win!"
case (2, 3):
self.MatchResult.text = "You Win!"
case (3, 2):
self.MatchResult.text = "You Lose!"
default:
break
}
[このスレッド](https://stackoverflow.com/q/37452118/6541007)を確認してください。 – OOPer