我需要一些幫助的應用程序。我需要爲0到15之間的整數生成一個隨機數字生成器,然後根據創建的數字推送到具有相應編號的視圖。 這就是我想要它工作的方式iOS的隨機數產生一個新的觀點
按一個按鈕 - >隨機數發生器給出一個介於0到15之間的數字 - >查看推到另一個已分配隨機數發生器給出的數字的視圖。
任何人可以幫助我的代碼? 由於
我需要一些幫助的應用程序。我需要爲0到15之間的整數生成一個隨機數字生成器,然後根據創建的數字推送到具有相應編號的視圖。 這就是我想要它工作的方式iOS的隨機數產生一個新的觀點
按一個按鈕 - >隨機數發生器給出一個介於0到15之間的數字 - >查看推到另一個已分配隨機數發生器給出的數字的視圖。
任何人可以幫助我的代碼? 由於
arc4random()
是標準Objective-C的隨機數生成函數。它會給你一個介於零和......之間的數字,超過十五個!
NSInteger randomNumber = arc4random() % 16;
然後,你可以做一個開關或一系列if
/else
語句:您可以用下面的代碼生成0到15之間的數字(所以,0,1,2,... 15)按不同的視圖控制器:
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;
而且你有一個NSInteger
p roperty在MyViewController子類上。
函數arc4random_uniform()是首選,因爲它不受模偏差的影響。 – 2013-05-06 18:26:49
這個函數生成僞隨機數嗎?它使用什麼種子? – 2014-06-08 00:25:42
@CharlesChow引用手冊頁,''arc4random()函數使用arc4密碼使用的密鑰流生成器,它使用8 * 8的8位S-盒,S盒可以大約爲(2 ** 1700)的狀態。該arc4random()函數在0至 (2 ** 32)-1的範圍返回僞隨機數,並因此具有蘭特(3)和隨機(3)。「' – jk7 2017-01-05 18:50:22
int randomIndex = arc4random() % 14 + 1 ; // gives no .between 1 to 15 ..
switch (randomIndex)
{
case 0 :
push view 1 ;
break;
case 1:
...
}
或'arc4random()%16'來匹配正確的範圍內,也' arc4random()%14 + 1'給出'[1,14]'。 – 2012-03-05 20:28:02
爲什麼-1?其他則是%14 + 1;我看不出有什麼問題。 – 2012-03-05 21:16:07
您可以使用arc4random_uniform
NSUInteger r = arc4random_uniform(16);
在64位模式下,arc4random_uniform返回一個32位int,NSUInteger是一個64位int,對吧? – avance 2014-04-11 19:41:04
u_int32_t \t arc4random_uniform(u_int32_t/* UPPER_BOUND * /)__OSX_AVAILABLE_STARTING(__ MAC_10_7,__IPHONE_4_3); 看起來它總是32位的無符號整數。 – 2014-04-12 06:52:52
我們可以使用C函數rand()
此:
這會產生1到30之間的整數或者您可以使用arc4random
功能是這樣的:
int i = arc4random() % 30;
NSLog(@"Random Number: %i", i);
據蘋果公司稱,最好的辦法是使用arc4random_uniform並通過上限:
arc4random_uniform(16)
從文檔:
arc4random_uniform()將返回一個均勻分佈的隨機數 小於UPPER_BOUND。 arc4random_uniform()被推薦超過 結構,比如`arc4random()%upper_bound'',因爲它避免了「模 偏差」,當上限不是2的冪。
其代碼你在說什麼? – 2012-03-05 20:26:26
這裏是關於隨機數生成的鏈接:http://stackoverflow.com/questions/160890/generating-random-numbers-in-objective-c – Jeremy 2012-03-05 20:27:43