Swift init Array с емкостью Как инициализировать массив в swift с определенной емкостью? Я пробовал: var grid = Array <Square> () grid.reserveCapacity(16) но получите ошибку expected declaration Ответ 1 Как насчет: class Square { } var grid = Array<Square>(count: 16, repeatedValue: Square()); Хотя это вызовет конструктор для каждого квадрата. Если вы создали массив с дополнительными квадратными экземплярами, которые вы могли бы использовать: var grid2 = Array<Square?>(count: 16, repeatedValue: nil); EDIT: С Swift3 эта подпись инициализатора изменилась на следующий: var grid3 = Array<Square>(repeating: Square(), count: 16) или var grid4 = [Square](repeating: Square(), count: 16) Конечно, оба они также работают с Square? и nil. Ответ 2 var actions:[AnyObject?] = [AnyObject?](count: 3, repeatedValue: nil) Ответ 3 Try: var grid = Array<Square>(count: 16, repeatedValue: aSquare) Ответ 4 Swift 3 var grid : [Square]? grid?.reserveCapacity(16) Я считаю, что это может быть достигнуто и в одной строке.
Ответ 1 Как насчет: class Square { } var grid = Array<Square>(count: 16, repeatedValue: Square()); Хотя это вызовет конструктор для каждого квадрата. Если вы создали массив с дополнительными квадратными экземплярами, которые вы могли бы использовать: var grid2 = Array<Square?>(count: 16, repeatedValue: nil); EDIT: С Swift3 эта подпись инициализатора изменилась на следующий: var grid3 = Array<Square>(repeating: Square(), count: 16) или var grid4 = [Square](repeating: Square(), count: 16) Конечно, оба они также работают с Square? и nil.
Ответ 4 Swift 3 var grid : [Square]? grid?.reserveCapacity(16) Я считаю, что это может быть достигнуто и в одной строке.