sin*_*inθ 16 xcode objective-c nsoperationqueue grand-central-dispatch ios
我正在将我的代码从常规GCD移动到NSOperationQueue因为我需要一些功能.我的很多代码都依赖于dispatch_after才能正常工作.有没有办法做类似的事情NSOperation?
这是我需要转换为的一些代码NSOperation.如果您可以提供使用此代码转换它的示例,那就太棒了.
dispatch_queue_t queue = dispatch_queue_create("com.cue.MainFade", NULL);
dispatch_time_t mainPopTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeRun * NSEC_PER_SEC));
dispatch_after(mainPopTime, queue, ^(void){
if(dFade !=nil){
double incriment = ([dFade volume] / [self fadeOut])/10; //incriment per .1 seconds.
[self doDelayFadeOut:incriment with:dFade on:dispatch_queue_create("com.cue.MainFade", 0)];
}
});
Run Code Online (Sandbox Code Playgroud)
gai*_*ige 27
NSOperationQueue其中没有任何计时机制.如果您需要设置这样的延迟然后执行操作,您将需要安排NSOperation从中dispatch_after来处理延迟并使最终代码成为一个NSOperation.
NSOperation旨在处理或多或少的批处理操作.用例与GCD略有不同,实际上在使用GCD的平台上使用GCD.
如果您要解决的问题是获取可取消的计时器通知,我建议NSTimer您在需要取消时使用并使其无效.然后,响应计时器,您可以执行代码,或使用调度队列或NSOperationQueue.
| 归档时间: |
|
| 查看次数: |
10062 次 |
| 最近记录: |