Целочисленный литерал 4294967295 переполняется при сохранении в Int - PullRequest
0 голосов
/ 03 мая 2018

Я получаю сообщение об ошибке при архивировании своего проекта. Как это исправить? Ошибка в строке № 2.

func random() -> CGFloat{
    return CGFloat(CGFloat(arc4random()) / 0xFFFFFFFF)
}

func random(min: CGFloat, max: CGFloat) -> CGFloat{
    return random() * (max - min) + min
}

error

1 Ответ

0 голосов
/ 03 мая 2018

Компилятор считает 0xFFFFFFFF целочисленным литералом, но значение слишком велико для (со знаком) Int на 32-битной платформе. Выбор (без знака) UInt32 вместо этого решает проблему:

func random() -> CGFloat{
    return CGFloat(arc4random()) / CGFloat(UInt32.max)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...