NSTimers VS NSThreading

时间:2011-09-22 23:03:54

标签: iphone ios4 nstimer nsthread

我正在开发一款iPhone游戏,其中玩家倾斜iPhone以使角色移动,但不幸的是,我用来动画场景的所有计时器都在减慢我的游戏速度。我被告知要使用NSThreads,但我真的对它们一无所知。我的问题是,使用NSThreads和NSTimers有什么区别?或者使用NSThreads有什么好处?它们有用吗?

2 个答案:

答案 0 :(得分:2)

Timers用于异步而非并发的代码执行。

  

计时器等待直到某个时间间隔过去然后触发,向目标对象发送指定的消息。例如,您可以创建一个NSTimer对象,该对象向窗口发送消息,告诉它在一定时间间隔后自行更新。

Threads用于并发执行代码。

  

NSThread对象控制执行的线程。如果希望在自己的执行线程中运行Objective-C方法,请使用此类。当您需要执行冗长的任务但不希望它阻止执行其余应用程序时,线程特别有用。特别是,您可以使用线程来避免阻塞应用程序的主线程,该主线程处理用户界面和与事件相关的操作。线程还可用于将大型作业分成几个较小的作业,这可能会导致多核计算机的性能提升。


另见:

答案 1 :(得分:0)

定时器是稍后调用方法的对象。线程是psuedo-parallel中要处理的东西的附加“流”。这就像比较苹果和橙子 - 它们并不真正相关。我能看到的唯一关系是你想在后台进行一些处理,但是你不应该在后台线程中进行UI调用,为什么你使用定时器来让你的角色移动?知道这一点,我们可能能够提供替代解决方案。