主线程中具有延迟的调用方法

时间:2013-06-18 14:20:12

标签: ios

大家好我有需要..请帮帮我。 下面是我在我的应用程序中运行的线程,每个.30delay调用。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    notification = [[NSNotificationCenter alloc] init];
    notificationTimer = [NSTimer scheduledTimerWithTimeInterval:.30 target:self selector:@selector(notificationTimerFired:) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] run];

});

我想要的是方法“notificationTimerFired”我正在调用另一个方法,并且被称为5秒间隔说..我怎么能这样做...我试图添加以下代码但是在第一次调用对于指定的延迟,但后来调用dispatch_async方法不断调用。请回复我,我非常需要

 [NSTimer scheduledTimerWithTimeInterval:.30 target:self selector:@selector(notificationTimerFired:) userInfo:nil repeats:YES];

1 个答案:

答案 0 :(得分:0)

伙计们,我找到了解决问题的方法,如下所示

//run only once for specified delay        
static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        notification = [[NSNotificationCenter alloc] init];
        notificationTimer = [NSTimer scheduledTimerWithTimeInterval:frequency*60
                                                             target:self
                                                           selector:@selector(repeateThreadForSpecificInterval:)
                                                           userInfo:nil
                                                            repeats:YES];
        // Do any other initialisation stuff here
    });

dispatch_once是我要搜索的密钥。谢谢你的回复..