我尝试使用以下代码生成随机否定NSInteger,
+ (NSInteger)getNegativeRandomNumber {
uint32_t random = arc4random_uniform(2147483647); // where 2147483647 is the max 32-bit positive value returned by random function
return (NSInteger)(-1 * random); // convert the positive into negative number
}
但偶尔这段代码会给我正数。你看到这个代码有什么问题吗?
答案 0 :(得分:2)
您使用
获得负数return -(NSInteger)random;
您需要第一个才能转换为签名类型。
答案 1 :(得分:0)
这肯定有帮助......
-(int) generateRandomNumberWithlowerBound:(int)0
upperBound:(int) 2147483647
{
int rndValue = lowerBound + arc4random() % (upperBound - lowerBound);
return -(NSInteger)(rndValue);
}