ランダムなタイミングで何かする・ランダムな間隔で何かする
ランダムなタイミングで何かすることと、ランダムな間隔で何かするというコードを書いてみました。
ランダムな間隔で何かする、のほうはわりと力技で、他に良い方法がある気がします。
まずランダムなタイミングで何かする。例えば、ボタンを押してからランダムなタイミングでイベントが起こるみたいな例です。
ボタンを設置しておいてから、結びつけておきます。
@IBAction func timeBtn(sender: AnyObject) { //0-30秒ランダム let random = arc4random() % 30 var doubleRandomNum: Double = Double(random) //遅らせる処理 let delay = doubleRandomNum * Double(NSEC_PER_SEC) var time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay)) dispatch_after(time, dispatch_get_main_queue(), { println( "ザ・ワールド" ) }) }
ランダムな間隔で何かするのほうです。1秒ごとにランダムな数値を吐き出し、条件分岐で処理を行わせることで
ランダムな間隔で文字を出力しています。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //1秒ごとにupdate()の中身を繰り返し処理を行う var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true) } func update() { //0から10までのランダムな数値を出力=0から10秒までのランダムな時間を出力 let random2 = arc4random() % 10 switch random2 { //2秒のとき case 2: println("承太郎「そして時は動き出す」") //5秒のとき case 5: println("ディオ「そして時は動き出す」") default: //どこにも当てはまらない場合の処理、必ず書く break } }