是否可以运行nstimer在主线程上调用的选择器?
NSTimer是在它自己的线程中产生的。
我的结构是一个线程用nstimer调用一个方法,nstimer调用一个做一些更新的方法,但是我需要在主线程上进行这些更新。解决办法是什么?添加其他方法并说出performOnMainThread
?
答案 0 :(得分:4)
是的,从您的计时器例程中调用use performOnMainThread。来自文档:
计时器与run一起工作 循环。要有效地使用计时器,你 应该知道如何运行循环 操作 - 参见NSRunLoop和线程 编程指南。请特别注意 运行循环保留其计时器,所以 你有可以释放计时器 将它添加到运行循环中。
还有一个关于使重复计时器无效的警告:
对于重复计时器,你必须 自己使计时器对象无效 通过调用其invalidate方法。 调用此方法请求 从当前删除计时器 运行循环;结果,你应该 总是从中调用invalidate方法 与计时器相同的线程 安装