【发布时间】:2013-02-02 05:02:37
【问题描述】:
我希望将来能够安排三个小事件,而不必为每个事件编写函数。我怎样才能使用NSTimer 做到这一点?我知道块有助于匿名函数,但它们可以在 NSTimer 中使用吗?如果可以,如何使用?
[NSTimer scheduledTimerWithTimeInterval:gameInterval
target:self selector:@selector(/* I simply want to update a label here */)
userInfo:nil repeats:NO];
【问题讨论】:
-
你为什么不使用
dispatch_after()?那是一个 GCD 函数,并以一个块作为参数。 -
从来没有听说过...我如何使用它?只要我能说“等待 X 秒然后执行此操作”,我就很高兴!
-
你可以试试看这里(NSTimer + Blocks)github.com/pandamonia/BlocksKit/blob/master/BlocksKit/… 或者,一般来说这里:github.com/pandamonia/BlocksKit
-
–performSelector:withObject:afterDelay:方法呢? -
@MartinR 并非所有 NSTimer 实例都需要使用 dispatch_after。例如,如果您希望特别能够阻止定时事件的发生,那么在调度块中设置标志并不总是等效的。如果我有一个在用户交互时触发的异步函数,并且我想等到他们完成交互以触发有效负载,那么 dispatch_after 它将在每次交互时触发一次,因为计时器可能会始终无效并且甚至永远不会尝试开火...节省大量内存。
标签: iphone objective-c nstimer