% оператор дает странный результат в быстром ios

Я знаком с математикой и с тем, что дает нам оператор% (по модулю) для определенных значений. Тем не менее, я следую лекции по коду Swift, и инструктор хочет вернуть значение где-то между 0 и половиной высоты представления. Он устанавливает уравнение как:

var offSet = arc4random ()% UInt32 (self.frame.size.height / 2)

Я должен что-то упустить. Если бы дуга не давала число от 0 до 1, а затем выполнение% по высоте (примерно 700 пикселей) всегда давало бы 0. Тем не менее, каждый раз, когда код запускается, он смещает случайную величину где-то между 0 и половиной высоты экран. Если я изменю% на *, программа вылетает.

Идеи?

1 ответ

Решение

Прочитайте справочную страницу arc4random()

"arc4random() function returns pseudo-random numbers in the range of 0 to (2**32)-1"

Таким образом, ваше случайное число будет чем-то потенциально большим, тогда по модулю оно попадет в диапазон 0 - (height/2 - 1)

Другие вопросы по тегам