NSTimer 不工作 不调用方法
程序员文章站
2022-04-09 18:34:33
比如,定义一个NSTimer来隔一会调用某个方法,但这时你在拖动textVIew不放手,主线程就被占用了。timer的监听方法就不调用,直到你松手,这时把timer加到 runloop里,就相当于告诉主循环腾出点时间来给timer,再拖动textView就不会因主线程被占用而不调用了。 改为: ......
比如,定义一个nstimer来隔一会调用某个方法,但这时你在拖动textview不放手,主线程就被占用了。timer的监听方法就不调用,直到你松手,这时把timer加到 runloop里,就相当于告诉主循环腾出点时间来给timer,再拖动textview就不会因主线程被占用而不调用了。
nstimer *timer = [nstimer timerwithtimeinterval:2.0 target:self selector:@selector(run) userinfo:nil repeats:yes]; // 定时器只运行在nsdefaultrunloopmode下,一旦runloop进入其他模式,这个定时器就不会工作 [[nsrunloop currentrunloop] addtimer:timer formode:nsdefaultrunloopmode];
改为:
// 定时器会跑在标记为common modes的模式下 // 标记为common modes的模式:uitrackingrunloopmode和kcfrunloopdefaultmode [[nsrunloop currentrunloop] addtimer:timer formode:nsrunloopcommonmodes];
上一篇: 设置mysql允许外部IP连接的解决方法及遇到的坑
下一篇: spring boot打包问题