'+' недоступно: пожалуйста, используйте явные преобразования типов или методы Strideable для арифметики смешанного типа.
Пример:
let a: UInt32 = 4
let b = 3
let result = a + b //error
В основном означает, что вы не можете добавить смешанных типов .
В вашем случае, когда вы делаете arc4random_uniform(UInt32(maxReps)) + minReps
, arc4random_uniform()
возвращает UInt32
, который нельзя добавить к minReps
, потому что это Int
.
Решение:
Обновите скобки:
let numberOfExercises = Int(arc4random_uniform(UInt32(maxReps))) + minReps
Здесь Int(arc4random_uniform(UInt32(maxReps)))
дает Int
, который мы можем добавить к minReps
Int
.
Кстати, из коробки работает следующее:
let numberOfExercises = Int(arc4random_uniform(4) + 3)
Из-за автоматического вывода типа Swift. В основном это просто продолжалось с UInt32
, не беспокоя вас. То есть ... пока вы не дадите ему явные смешанные типы.