Asd*_*bal 5 for-loop objective-c delay cocos2d-iphone grand-central-dispatch
我有一个for循环,我希望在迭代之间添加延迟.我已将waitUntilDone更改为YES并获得相同的结果.我的数组中只有两个数字,并且在五秒后调用它们而不是:
0s - 没有5s - Block叫10s-Block叫
for(NSNumber* transaction in gainsArray) {
    double delayInSeconds = 5.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
        NSLog(@"Block");
        [self performSelectorOnMainThread:@selector(private_addTransactionToBankroll:)
        withObject:transaction waitUntilDone:NO];
    });
}
2015-06-16 20:11:06.485 TestApp[97027:6251126] Block
2015-06-16 20:11:06.485 TestApp[97027:6251127] Block
如果重要的话,我正在使用Cocos2d
for循环将立即分派另一个,因此它们实际上将在同一时间延迟。
而是为每个设置不同的增加延迟:
double delayInSeconds = 0.0;
for(NSNumber* transaction in gainsArray)
{
    delayInSeconds += 5.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void)
                   {
                       NSLog(@"Block");
                       [self performSelectorOnMainThread:@selector(private_addTransactionToBankroll:)
                                              withObject:transaction
                                           waitUntilDone:NO];
                });
}
| 归档时间: | 
 | 
| 查看次数: | 1489 次 | 
| 最近记录: |