Как я могу вычислить и инициализировать в свойстве init "content"?быстрый - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь инициализировать свойство content с помощью метода setupForNewGame(), где я передал два свойства, но я хочу использовать вычисляемое свойство, как я могу это сделать?

class Grid{
   private var content: [[Int?]]
   init(width: Int, height: Int){
      content = Grid.setupForNewGame(width: width, height: height)
   }
   class func setupForNewGame(width: Int,height: Int)->[[Int]]{
      return ...
   }
}

1 Ответ

1 голос
/ 25 июня 2019

Просто создайте свойства для width и height в class Grid. В init(width:height:) установите значения для этих свойств.

Создать content как вычисляемое свойство , которое returns является результатом метода setupForNewGame(width:height:) с использованием созданных выше свойств width и height.

class Grid {
    let width: Int
    let height: Int

    var content: [[Int]] { //this is a computed property.....
        return Grid.setupForNewGame(width: self.width, height: self.height)
    }

    init(width: Int, height: Int) {
        self.width = width
        self.height = height
    }

    class func setupForNewGame(width: Int, height: Int) -> [[Int]] {
        return ...
    }
}

Использование:

let grid = Grid(width: 3, height: 3)
print(grid.content) //prints the result returned from `setupForNewGame(width:height:)` method using width = 3 and height = 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...