iOS Developer

NSTimer在UITableView中使用的误差

2016-10-11  本文已影响96人  阿汤8阿义

NSTimer的使用一般有两种:
oooooo

下面就讲讲NSTimer在UITableView中的误差
看实例
oooooo

2016-10-11 11:14:53.760 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:53.762 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:53.763 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:53.764 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:53.764 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:53.765 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:55.214 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:55.246 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:55.337 gcd[246:11102] ****这里进了多少次
2016-10-11 11:14:58.608 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.609 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.609 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.610 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.610 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.611 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.611 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.611 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:58.612 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.215 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.248 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.339 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.761 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.762 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.763 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.764 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.765 gcd[246:11102] ****有没有进入时间
2016-10-11 11:14:59.765 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.219 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.251 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.343 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.765 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.766 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.767 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.768 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.769 gcd[246:11102] ****有没有进入时间
2016-10-11 11:15:01.769 gcd[246:11102] ****有没有进入时间相隔都1s左右这和我们的实际要求是不服的。 那下面是放在UITableView结果:oooooo```

总结:
方式1会自动将创建的定时器以默认方式添加到当前线程runloop中,而无需手动添加。但是在此种模式下,当滚动屏幕时runloop会进入另外一种模式,定时器会暂停,为了解决这种问题,可以像方式2那样把定时器添加到NSRunLoopCommonModes模式下。
方式1和方式2在设置后都会在间隔设定的时间(本例中设置为2s)后执行test方法,如果需要立即执行可以使用下面的代码。
[time fire];

上一篇 下一篇

猜你喜欢

热点阅读