dispatch_after equivalent in NSOperationQueue
grand-central-dispatch, ios, nsoperationqueue, objective-c, xcode
Solution
`NSOperationQueue` doesn't have any timing mechanism in it. If you need to set up a delay like this and then execute an operation, you'll want to schedule the `NSOperation` from the `dispatch_after` in order to handle both the delay and making the final code an `NSOperation`.
`NSOperation` is designed to handle more-or-less batch operations. The use case is slightly different from GCD, and in fact uses GCD on platforms with GCD.
If the problem you are trying to solve is to get a cancelable timer notification, I'd suggest using `NSTimer` and invalidating it if you need to cancel it. Then, in response to the timer, you can execute your code, or use a dispatch queue or NSOperationQueue.
Problem
I'm moving my code from regular GCD to `NSOperationQueue` because I need some of the functionality. A lot of my code relies on dispatch_after in order to work properly. Is there a way to do something similar with an `NSOperation`? This is some of my code that needs to be converted to `NSOperation`. If you could provide an example of converting it using this code, that would be great. ``` 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)]; } }); ```