【发布时间】:2017-03-03 10:39:49
【问题描述】:
我正在尝试使用以下代码生成随机负 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
}
但偶尔这段代码会给我正数。您是否发现此代码有任何问题?
【问题讨论】:
-
return -(NSInteger)random;。问题在于 64 位和 32 位架构,而NSInteger的定义不同。而你正在随机进行-sutff 和铸造。
标签: ios objective-c random nsinteger