来自AppDelegate的预定计时器:启动时间太长

时间:2018-03-24 14:43:52

标签: ios swift nstimer

我需要在内存中加载很多不同的信息,我想知道哪种方式更快:简单的tsv文件或领域数据库。

为此,我试图在AppDelegate中实现预定的计时器。该计时器应该尽快启动,并且应该在加载数据时停止。

我为此创建了一个小类,内部计数器:

class TimerSpeedCounter {
var timer: Timer!
var counter: Int = 0

init() {
    self.counterInit()
}

func counterInit() {
    self.counter = 0

    self.timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(TimerSpeedCounter.countPlusOne), userInfo: nil, repeats: true)

}

@objc func countPlusOne() {
    self.counter = self.counter + 1
}

我在didFinishLaunchingWithOptions创建了这个TimerSpeedCounter,这是单身。我把它放在开头:

timerSpeed.counterInit()

显然,当我加载所有数据的函数停止时,我希望看到self.counter的值。

问题是,它在某种程度上有效,但是self.counter总是等于零,因为这个计时器比需要的时间晚了(在这些函数加载所有数据之后)。

所以,我有两个问题。

我做错了什么?为什么这个计时器比它应该晚发射?

比较两种不同解决方案的速度的正确方法是什么?

0 个答案:

没有答案