完成事件时的NSTimer scheduledTimerWithTimeInterval

时间:2014-09-23 22:04:13

标签: objective-c

我正在使用NSTimer scheduledTimerWithTimeInterval来延迟函数调用,但我也需要一个on completion事件。出于某种原因,我在规范中找不到任何提及。

我有什么选择?

2 个答案:

答案 0 :(得分:1)

我不确定我的答案是否正确。通过

调用选择器后
[NSTimer scheduledTimerWithTimeInterval:10f
                                 target:self 
                               selector:@selector(onFire)
                               userInfo:nil 
                                repeats:NO];

只需在被触发的方法底部调用完成方法就足够了。这不符合您的要求吗?

- (void)onFire {
    // DO THE JOB.
    // ...
    [self onCompletion];
}

- (void)onCompletion {}

答案 1 :(得分:0)

我有点不清楚为什么其他答案不符合你的喜好,但这是另一种方法。

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#>
});

这可以让您轻松延迟一些嵌套块。