此代码的swift中的替代代码是什么?
static inline CGFloat randomInRangeScale(CGFloat scale)
{
CGFloat value = arc4random_uniform(INT16_MAX);
return value * 0.000015 + 0.8 ;
}
我试过了:
func randomInRangeScale(scale : CGFloat) -> CGFloat
{
let value : CGFloat = arc4random_uniform(UInt16);
return value * 0.000015 + 0.8 ;
}
但它给了我一个错误"Cannot invoke 'arc4random_uniform' with an argument list of type '((UInt16).Type)"
答案 0 :(得分:0)
arc4random_uniform
的参数类型为UInt32
,因此您必须将UINT16_MAX
转换为UInt32
并将值转换为CGFloat
。
试试这个:
func randomInRangeScale(scale : CGFloat) -> CGFloat {
let value = arc4random_uniform(UInt32(UINT16_MAX));
return CGFloat(value) * 0.000015 + 0.8;
}
答案 1 :(得分:0)
这应该做的工作
{{1}}