私は同じ問題を抱えています。以下のコードでは、クラスのすべてのプロパティを初期化する前にmakePlayersFromを実行しているのでエラーが発生します。Swift:initメソッドに機能を追加する方法
私は選手をオプションの変数として置くことができますが、そうでないと悪い設計になると思います。私はinitクラスにmakePlayers機能を追加することもできますが、それも悪い設計であると感じています(しかし、私は誰にも分かりません)。最高のデザインプリンシパルでこれを維持する方法を誰にでも教えてもらえますか?
class Game {
let host:User
var players:[Player]
init(host:User, extraPlayers:Int) {
self.host = host
self.players = makePlayersFrom(host:host, extraPlayers:extraPlayers)
}
private func makePlayersFrom(host:User, extraPlayers:Int) -> [Player] {
// do stuff to get players
return players
}
}