2

我有一个我想在一段时间延迟后执行(不重复)的方法。

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

如果最终结果相同(即我的方法将在指定的时间延迟后被调用),那么使用其中一个的优点/缺点是什么。我用哪一个不重要吗?

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

TIA

4

1 回答 1

3

来自 NSObject 类关于 performSelector: 方法的苹果参考

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

所以如果你只想打一个电话,我想你可以自由使用performSelector:afterDelay:

于 2012-06-05T17:07:02.620 回答