NSTimer scheduledTimerWithTimeInterval完成事件
我使用NSTimer scheduledTimerWithTimeInterval
延迟函数调用,但我也需要一个完成事件。出于某种原因,我在规格中找不到任何提及。NSTimer scheduledTimerWithTimeInterval完成事件
我有什么选择?
我不知道我是否正确地得到了答案。在调用选择器之后,通过调用选择器
[NSTimer scheduledTimerWithTimeInterval:10f
target:self
selector:@selector(onFire)
userInfo:nil
repeats:NO];
只需在调用方法的底部调用完成方法就足够了。这不符合你的要求吗?
- (void)onFire {
// DO THE JOB.
// ...
[self onCompletion];
}
- (void)onCompletion {}
这不是'[self onCompletion];'而不是'onCompletion();'? – rmaddy 2014-09-23 22:18:25
@rmaddy糟糕,今天Java太多:) – lambruscoAcido 2014-09-23 22:23:05
不好。我需要这个像C#中的匿名方法,这样我可以嵌套一些代码。 – user3077725 2014-09-23 22:25:13
我有点不清楚为什么其他答案不符合你的喜好,但这里是另一种方法。
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
<#code to be executed after a specified delay#>
});
这应该可以让您轻松延迟一些嵌套块。
你需要说明你在找什么。也许你应该发布你的相关代码并解释你所需要的不同。 – rmaddy 2014-09-23 22:13:13
@rmaddy不要成为一个疯狂的人。我需要一个附加到计时器上的完成事件。有什么比这更简单的? – user3077725 2014-09-23 22:23:30
定时器每次定时器触发时都会调用一个方法(如果不重复,则为一次)。所以你提出的问题没有任何意义,因为它已经打了电话。你还需要什么? – rmaddy 2014-09-23 22:33:00