Ваш код пытается изменить результат выражения (используя += 1
); это невозможно, поскольку анонимные результаты являются постоянными и, следовательно, неизменяемыми.
Я не уверен, почему изменение += 1
на +1
не сработало, но вы можете просто разбить его на две строки. Если вы измените оператор диапазона с ..<
на ...
, вы также можете избавиться от +1
.
Другая ваша проблема в том, что вы не можете использовать диапазон с CGFloat
- вам нужно использовать тип, который реализует SignedInteger
. Целочисленное деление может не дать вам тот же результат. Если этого не произойдет, вы можете изменить цикл, используя увеличение, а не диапазон.
let width = Int(self.frame.size.width / groundTexture.size().width)
for i in 0...width {
piece.size = CGSize(width: 1500, height: groundPiece.size.height)
piece.position = CGPoint(x: i * piece.size.width, y: piece.size.height - 75)
}