我需要在内存中加载很多不同的信息,我想知道哪种方式更快:简单的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
总是等于零,因为这个计时器比需要的时间晚了(在这些函数加载所有数据之后)。
所以,我有两个问题。
我做错了什么?为什么这个计时器比它应该晚发射?
比较两种不同解决方案的速度的正确方法是什么?