私は数学的クイズゲームを作っています。ゲームでは、ユーザーがユニットを選択し、ゲームはこのユニットの演習について質問します。異なるクラスタイプ
クラスは、私はしている:
のViewController
UnitSelector - ユーザー が
Unit01を選択したユニットに通知する責任がある...と... Unit20 - 責任がありますランダムに返すために ユニットのエクササイズ
と演習をたくさん
class UnitSelector {
var unit: Int!
init(unit: Int) {
self.unit = unit
}
func getUnitClass() -> Any? {
switch unit {
case 0:
return Unit01()
case 1:
return Unit02()
// all the other cases
case 19:
return Unit20()
default:
return nil
}
}
}
class GameViewController: UIViewController {
override func viewDidLoad() {
// more code
unitSelector = UnitSelector(unit: selectedUnit)
unitClass = unitSelector.getUnitClass()
let question = unitClass.giveMeQuestion()
}
// all the other code
}
// all the Units are like this one
class UnitXX {
// vars
func giveMeQuestion() -> String {
// code
return "Question"
}
}
問題は、私はこの状況を解決する方法を知っているドントことです: I'veは単位でそれを分割し、各ユニットは、独自の練習を持っています。私は約20単位を持っており、各ユニットには約5単位の練習があります。コントローラでは、unitClassの型はAnyであり、UnitSelector.getUnitClassが返すクラス、Unit01()... Unit20()を持つ必要があります。 私が守ってくれたロジックが正しいかどうかは分かりませんので、誰かが私を助けることができたら...
ありがとう!!
'Unit'にクロージャープロパティ' exercice'を導入し、初期化時に設定することがあります。 – shallowThought