Objective c iOS随机数生成器到新视图

Objective c iOS随机数生成器到新视图,objective-c,ios,xcode,ipad,Objective C,Ios,Xcode,Ipad,我需要一些应用程序的帮助。我需要为0到15之间的整数创建一个随机数生成器,它将根据创建的数字推送到具有相应数字的视图。 这就是我想要的工作方式 按下按钮-->随机数生成器提供一个介于0和15之间的数字-->视图将按下另一个已分配随机数生成器提供的数字的视图 有人能帮我写代码吗? 感谢arc4random()是标准的Objective-C随机数生成器函数。它会给你一个介于零和。。。嗯,超过十五个!您可以使用以下代码生成一个介于0和15之间的数字(因此,0,1,2,…15): NSInteger r

我需要一些应用程序的帮助。我需要为0到15之间的整数创建一个随机数生成器,它将根据创建的数字推送到具有相应数字的视图。 这就是我想要的工作方式

按下按钮-->随机数生成器提供一个介于0和15之间的数字-->视图将按下另一个已分配随机数生成器提供的数字的视图

有人能帮我写代码吗? 感谢

arc4random()是标准的Objective-C随机数生成器函数。它会给你一个介于零和。。。嗯,超过十五个!您可以使用以下代码生成一个介于0和15之间的数字(因此,0,1,2,…15):

NSInteger randomNumber = arc4random() % 16;
然后,您可以执行一个开关或一系列
if
/
else
语句来推送不同的视图控制器:

UIViewController *viewController = nil;
switch (randomNumber)
{
    case 0:
        viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
    break;
    // etc ...
}

[self.navigationController pushViewController:viewController animated:YES];
或者更确切地说,在重读该问题时,它看起来如下所示:

UIViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" 
viewController.number = randomNumber;

在MyViewController子类上有一个
NSInteger
属性。

您可以使用
arc4random\u uniform

NSUInteger r = arc4random_uniform(16);

我们可以使用C函数
rand()

这将生成一个介于1和30之间的整数。或者,您可以像这样使用
arc4random
功能:

int i = arc4random() % 30;
NSLog(@"Random Number: %i", i);

根据苹果公司的说法,最好的方法是使用arc4random_统一并通过上限:

arc4random_uniform(16)
从文档中:

arc4random\u uniform()将返回均匀分布的随机数 小于上界arc4random_uniform()建议在 类似于“`arc4random()%上限”的构造,因为它避免了“模” 偏差“当上限不是二的幂时


在Swift 4.2中,我们不必调用一些“arc4random\u uniform”函数来创建随机数,现在我们只需调用函数“random(In:RANGE)”


你说的是哪种代码?这里有一个关于随机数生成的链接:或者
arc4random()%16
匹配正确的范围,还有
arc4random()%14+1
给出了
[1,14]
。为什么是-1?除%14+1外;我看不出这有什么错。函数arc4random_uniform()是首选的,因为它不会受到模偏差的影响。这个函数会生成伪随机数吗?它使用什么种子?@CharlesChow引用手册页,
“arc4random()函数使用arc4密码使用的密钥流生成器,它使用8*8位S盒。S盒可以处于大约(2**1700)状态。arc4random()函数返回0到(2**32)范围内的伪随机数-“在64位模式下,arc4random\u uniform返回一个32位的整数,而NSUInteger是一个64位的整数,对不对?u_int32\u t arc4random\u uniform(u_int32\u t/*上限*/)\u OSX\u可用\u启动(\u MAC\u 10\u 7,\u IPHONE\u 4\u 3);看起来它总是32位的无符号整数。
arc4random_uniform(16)
//Create Random numbers Swift 4.2

//Int
let randomInt = Int.random(in: 1...10)

//Double
let radomDouble = Double.random(in: 1...10)

//Float
let randomFloat = Double.random(in: 1...10)
extension CGFloat {
   static func random() -> CGFloat {
       return CGFloat(arc4random()) / CGFloat(UInt32.max)
   }
}