Swift 2.0 Timer用于随机数

时间:2016-01-25 17:29:05

标签: swift nstimer arc4random

我需要一个在应用启动时启动的计时器。计时器用于arc4random,它给出一个从1到10的随机数,并根据该数字选择多个if语句中的一个。当给出随机数时,我还需要定时器重置,以便arc4random可以给出一个新的随机数。我还没有弄清楚如何实现计时器和arc4random,但我举一个if语句的例子。

示例:

{{1}}

3 个答案:

答案 0 :(得分:1)

我不确定这是否是您正在寻找的但听起来像是......

var timer = NSTimer()

func viewDidLoad() {
    self.timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "getRandomNumber", userInfo: nil, repeats: true)
}

func getrandomNumber(){
    let randomNumber = Int(arc4random_uniform(10) + 1)

    if randomNumber >= 9 {
        print("...")
    } else if randomNumber < 9 {
        print("...")
    }
    timer.invalidate()
    resetTimer()
}

func resetTimer() {
    self.timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "getRandomNumber", userInfo: nil, repeats: true)
}

当视图加载时,timer开始,每1.0秒调用一次函数getRandomNumber()getRandomNumber()生成一个randomNumber,然后根据您打印的数字或相应地执行任何操作,然后在if-else语句之后使计时器无效,然后调用名为{{的函数1}},它将重新开始。

随机数由resetTimer生成,其中10是上限,+1是指起始索引。因此,这将生成10到1之间的数字。如果您这样做,例如:Int(arc4random_uniform(10) + 1),它将生成20到2之间的数字。

答案 1 :(得分:0)

let timer = Int(arc4random_uniform(10) + 1)
if timer < 3 {
  // code
} else if timer < 5 {
  // code
} else {
  // code
}

答案 2 :(得分:0)

var randomNumber = Double(arc4random_uniform(10) + 1)

var timer = NSTimer()   
self.timer = NSTimer.scheduledTimerWithTimeInterval(randomNumber, target: self, selector: "AnyFunctionYouWant", userInfo: nil, repeats: true)

说明:

  • randomNumber = Double(arc4random_uniform(10) + 1)创建一个新的var a将其值设置为arc4random函数的返回值。您必须将其强制转换为使其与NSTimer类一起使用
  • var timer = NSTimer()使用默认初始值设定项创建新的NSTimer类实例
  • self.timer = NSTimer.scheduledTimerWithTimeInterval(randomNumber, target: self, selector: "AnyFunctionYouWant", userInfo: nil, repeats: true) 使用计划的计时器间隔初始化您之前创建的NSTimer变量,该计时器间隔设置为您之前生成的随机数。如果您没有将随机数转换为加倍,则它将无法工作,因为此方法的参数需要双倍而不是一个int