大家好我有需要..请帮帮我。 下面是我在我的应用程序中运行的线程,每个.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];
答案 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是我要搜索的密钥。谢谢你的回复..