This question already has an answer here:
I am developing a chat application using xmppframework in IOS 5; it works perfectly. But I updated my xcode to 4.5.1, ios5 to IOS 6 and my mac OS to 10.7.5, and the project did not work due to deprecated issues. I replaces all methods with new methods in ios 6 except this one:
dispatch_get_current_queue()
How can I replace this method in IOS 6?
It depends what you need to achieve with this call.
Apple states that it should be used for debugging anyway.
Perhaps the queue does not matter (as you just need a background queue) so get a global queue with specific priority (dispatch_get_global_queue(dispatch_queue_priority_t priority,
unsigned long flags);
)
OR,
If you do need to execute some pieces of code in the same queue , create a queue, retain it and dispatch all your tasks there.
How about using NSOperationQueue
?
-(void) doSomeThing:(void (^)(BOOL success)) completionHandler
{
NSOperationQueue* callbackQueue = [NSOperationQueue currentQueue];
if(!callbackQueue) {
callbackQueue = [NSOperationQueue mainQueue];
}
dispatch_async(...,^{
// do heavyweight stuff here
// then call completionHandler
if(completionHandler) {
[callbackQueue addOperationWithBlock:^{
completionHandler(...);
}];
}
});
来源:https://stackoverflow.com/questions/12842166/how-can-i-replace-deprecated-method-dispatch-get-current-queue-from-ios5-to-io