Например, у меня есть следующий код:
let numberOfBlocks = 3
let blockWidth = SKSpriteNode(imageNamed: "image.png").size.width
let padding = 20.0
let offsetX : Float = (self.frame.size.width - (blockWidth * numberOfBlocks + padding * (numberOfBlocks-1))) / 2
Я получил ошибку:
'Double' не конвертируется в 'UInt8'
Есть ли способ неявно преобразовывать тип данных (возможно, только для примитивного типа данных)?
Изменить:
Я знаю, как сделать явное преобразование, используя конструктор определенного типа, как Iducool. Но это не очень помогает моему вопросу, потому что мы даже не знаем, где добавить конверсии. Я упростил свое выражение на детской площадке:
Проблема заключается в переменной "padding", сообщение об ошибке
'Double' не конвертируется в 'UInt8'.
Итак, я сделал преобразование:
Тогда проблема теперь в переменной "blockWidth".
Я снова добавил преобразование:
И сообщение об ошибке:
Тип 'UInt8' не соответствует протоколу 'FloatLiteralCovertible'
Конечное рабочее выражение:
Это просто и быстро? Я так не думаю.