嗨,每一個我是法國人,如此scuse我的我的英語。那麼我想要做的是每一秒我都會在四種方法之間做一個隨機方法。我怎麼能這樣做?xcode做一個隨機的方法
回答
某處你需要啓動定時器
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(randomMethod:) userInfo:nil repeats:YES];
然後實現將被調用的方法:
-(void)randomMethod:(NSTimer *)timer {
if (shouldStop) {
[timer invalidate];
return;
}
int rand = arc4random() % 4;
switch (rand) {
case 0:
[self method0];
break;
case 1:
[self method1];
break;
case 2:
[self method2];
break;
case 3:
[self method3];
break;
}
}
再後來,在某些時候,如果你想停止它,設置shouldStop
爲true。
你想要一個1和4之間的隨機整數,然後case語句來執行相應的選擇器,對不對?
的確是這樣,是一個用於此 – 2011-05-04 16:26:23
INT randomNumber = 1+ arc4random()%的碼(4) ;獲得數[1,4] – 2011-05-04 16:30:11
然後如何執行相應的選擇器? – 2011-05-04 16:33:32
4個字符串(您的方法的名稱)的數組,在0和3之間生成隨機int,然後使用NSSelectorFromString來調用。
是否有這樣的代碼,因爲我真的不明白 – 2011-05-04 16:26:07
例如,你有四種方法:
//put them on array as strings
NSArray *arrayOfSelectors = [NSArray arrayWithObjects:@"eat", @"drink", @"run", @"sleep", nil];
//generate a random number based on the number of selectors inside the array
int randomNumber = arc4random()%arrayOfSelectors.count;
//call the method
//assumes that someObject really implement the methods inside the array, else your app will crash
[someObject performSelector:NSSelectorFromString([arrayOfSelectors objectAtIndex:randomNumber])];
- - (無效)吃;
- - (void)drink;
- - (void)run;
- - (void)sleep;
,然後......沒有if(randomNumber = 1)或類似這樣的東西,調用方法附加到數字 – 2011-05-04 16:32:38
@arvin Arabi 0對應到選擇器「吃」,1到「喝」等...... – johnoodles 2011-05-04 16:35:18
他的回答是好的阿文,它確實隨機地調用其中一種方法。將其複製到XCode和Cmd並單擊這些方法以查看其文檔。 – Jano 2011-05-04 16:36:32
首先創建定時器:
NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 1.0
target: self
selector:@selector(selectorSwitcher:)
userInfo: nil repeats:YES];
NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:t forMode: NSDefaultRunLoopMode];
然後實現切換器:
-(void)selectorSwitcher:(NSTimer *)timer {
int randomNumber = 1+ arc4random() %(4);
switch (randomNumber) {
case 1:
[self selector1];
break;
case 2:
[self selector2];
break;
case 3:
[self selector3];
break;
case 4:
[self selector4];
break;
default:
break;
}
}
- 1. 隨機圖像方向xcode
- 2. 執行一個隨機方法
- 3. 如何做一個隨機數字?
- 4. 在javascript中做一個隨機測驗
- 5. 我試圖做一個隨機完整的NBA發電機vba
- 6. 更好的方法讓java做隨機的東西?
- 7. 無法從隨機類中獲得一個隨機的int值
- 8. 客觀c大隨機方法,我是這樣做的嗎?
- 9. 有效的方法來做隨機文件訪問?
- 10. Xcode中的隨機圖像
- 11. 我如何做一個隨機生成一個特定區域
- 12. 找到一個隨機數的算法
- 13. php隨機數組 - 隨機再做一次while
- 14. 如何做一個隨機唯一的生成器?
- 15. Sitecore做隨機的東西
- 16. 隨機生成一個隨機布爾
- 17. 施加一個隨機變量隨機
- 18. 在靜態方法中創建一個新的隨機數
- 19. LINQ的方法返回一個隨機組記錄
- 20. 下一個方法(.NET Framework)的隨機數問題
- 21. 簡單實現一個迷宮生成方法(隨機DFS)的
- 22. 如何創建一個隨機的字選擇器方法
- 23. 返回一個隨機布爾值的最佳方法
- 24. 隨機調用方法
- 25. 隨機方法問題
- 26. 如何隨機化方法?
- 27. 加載隨機VOID方法
- 28. 隨機查找方法
- 29. [AS3]隨機做一些不重複
- 30. 做一個Python IRC機器人的正確方法?
好的,謝謝! – 2011-05-04 16:38:23
好的,但我的方法使球動畫化,它們都與60fps的CadisplayLink處於同一個主循環中。 – 2011-05-04 16:47:21
在某些時候,您需要學會自己解決問題。我給你提供了定時器代碼,隨機代碼和switch語句代碼。這就是你的問題所要求的。如果你有其他問題,把它們作爲一個不同的問題。 – coneybeare 2011-05-04 16:50:15