我已经使用兰特()。 但它给我重新启动应用程序即使一个特定的值。
我已经实现了我的应用程序如下。
- (void)viewDidLoad {
[super viewDidLoad];
int x,y;
x=random() % 480; y=random() % 300;
lblT.center=CGPointMake(x,y); // my label lblT
}
试着在你的应用程序中实现,并启动应用程序。 重新启动应用程序后,你会发现,标签将出现在特定的值。
我已经使用兰特()。 但它给我重新启动应用程序即使一个特定的值。
我已经实现了我的应用程序如下。
- (void)viewDidLoad {
[super viewDidLoad];
int x,y;
x=random() % 480; y=random() % 300;
lblT.center=CGPointMake(x,y); // my label lblT
}
试着在你的应用程序中实现,并启动应用程序。 重新启动应用程序后,你会发现,标签将出现在特定的值。
arc4random()
是一个内置的功能,不需要播种(等因此不会产生可以通过使用种子来产生可预测的序列),和它方便地返回一个整数。 我从来没有使用其他任何东西。
使用随机之前以下行()
srand(time(NULL));
在软件随机数生成器将实际上给值的伪随机序列。
除非你从一个真正的随机事件的值种子随机数生成器,你总是会得到相同的序列每次使用该软件的时间。
我不知道你的软件,但它并不像你播种随机数发生器, Gcamp可能是正确的轨道上。
由于使用的是随机的(),而不是兰特(),你应该种子,随机数生成与该位的代码...
srandomdev();
我会做这样的:
景观:
- (void)viewDidLoad {
[super viewDidLoad];
int x = arc4random()%480;
int y = arc4random()%320;
lblT.center=CGPointMake(x,y);
}
没有风景:
- (void)viewDidLoad {
[super viewDidLoad];
int x = arc4random()%320;
int y = arc4random()%480;
lblT.center=CGPointMake(x,y);
}
使用此代码,只为整数随机值
#define random(min,max) ((arc4random() % (max-min+1)) + min)
测试
for (int i = 0; i < 500; i++) {
NSLog(@"rand is %d", random(-100,100));
}