performSelector:afterDelay与NSTimer:ScheduleTimerWithTimeInterval

时间:2012-06-05 16:54:51

标签: ios

我有一个方法,我希望在一段时间延迟后执行(非重复)。

我可以使用performSelector:afterDelay或者我可以安排一个NSTimer并指定选择器作为参数。

如果最终结果相同(在指定的时间延迟后调用我的方法),使用one over other的优点/缺点是什么? 我使用哪一个都没关系?

(如果它是相关的,我的方法将在前台调用,当应用程序在通过beginBackgroundTaskWithEcpirationHandler提供的10分钟窗口期间移动到后台时)。

TIA

1 个答案:

答案 0 :(得分:3)

来自NSObject类的Apple参考,关于performSelector:方法

  

此方法设置一个计时器来执行aSelector消息   当前线程的运行循环。计时器配置为在。中运行   默认模式(NSDefaultRunLoopMode)。当计时器触发时,线程   尝试从运行循环中取消消息并执行   选择。如果运行循环正在运行并且在默认情况下,它会成功   模式;否则,计时器等待直到运行循环处于默认状态   模式。

所以,如果您只想进行一次通话,我认为您可以自由使用performSelector:afterDelay: