我有一个在Swift中生成随机CGFloats的扩展:
public extension CGFloat {
/// Randomly returns either 1.0 or -1.0.
public static var randomSign:CGFloat {
get {
return (arc4random_uniform(2) == 0) ? 1.0 : -1.0
}
}
/// Returns a random floating point number between 0.0 and 1.0, inclusive.
public static var random:CGFloat {
get {
return CGFloat(arc4random())
}
}
/**
Create a random num CGFloat
- parameter min: CGFloat
- parameter max: CGFloat
- returns: CGFloat random number
*/
public static func random(min: CGFloat, max: CGFloat) -> CGFloat {
return CGFloat.random * (max - min) + min
}
}
我正在使用它:
var viewHeight:CGFloat = view.frame.size.height
var randomY:CGFloat = CGFloat.random(min: 0, max: viewHeight)
print(randomY)
var randomWidth:CGFloat = CGFloat.random(min: 90, max: 300)
print(randomWidth)
但是我得到了奇怪的结果,比如:
6483772455.0
878524470690.0
为什么呢?我预计会有更低的价值,例如在90-300之间等。
我做错了什么?