gpt4 book ai didi

objective-c - Objective C for 循环延迟

转载 作者:太空狗 更新时间:2023-10-30 03:50:27 26 4
gpt4 key购买 nike

我有一个 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];

});
}

关于objective-c - Objective C for 循环延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30880354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com