2015-11-08 5 views
1

Я начинающий программист, и сейчас я играю в игру. Я не сталкивался с такими ошибками, но знаю, что это очень легко исправить.Как я могу заставить этот бинарный оператор работать с CGFloats?

Heres код:

func randInRange(range: Range<Int>) -> Int { 
    return Int(arc4random_uniform(UInt32(range.endIndex - range.startIndex))) + range.startIndex } 

Вот постоянная Я пытаюсь работать с:

let random = randInRange(self.frame.size.width * 0.3...self.frame.size.width * 0.6) 

Ошибкавыходит, как это: двоичный оператор '...' применяется к 2 операндам CGFloat.

ответ

3

Ваш метод randInRange ожидает диапазон целых чисел, поэтому вам нужно преобразовать результат вашего выражения из CGFloat в Integer.

let random = randInRange(Int(self.frame.size.width * 0.3)...Int(self.frame.size.width * 0.6)) 
+0

Спасибо большое, чувак! :) –

+0

@JoshSchlabach Если этот вопрос помог вам решить оригинальную проблему, отметьте ее как принятую. Так работает StackOverflow, и когда вы принимаете ответ, это означает, что проблема решена с помощью данного решения (и сообщите другим, что это правильное решение). – Whirlwind