arc4random()范围包括底片

时间:2012-03-04 05:05:42

标签: arc4random

想要找到如何格式化arc4Random()的来电以使用从-10到10的数字范围。

或者arc4Random()只生成从0到X?如果是这种情况,我需要操纵arc4Random()的结果,以便它可能是指定范围内的结果?

1 个答案:

答案 0 :(得分:6)

arc4random返回u_int32_t,这是一种无符号类型。您需要将其转换为有符号的类型,然后减去。

我假设您想要一个从-10到+10的数字(有时你想要选择-10和+10)。

如果您的目标是iOS 4.3或更高版本,或Mac OS X 10.7或更高版本,则应使用arc4random_uniform功能:

int myNumber = (int)arc4random_uniform(21) - 10;

如果您要定位较旧的操作系统,则必须使用arc4random

int myNumber = (int)(arc4random() % 21) - 10;