38

我正在使用 iOS 5 中的 xmppframework 开发一个聊天应用程序;它完美地工作。

但是我将 Xcode 更新为 4.5.1,将 iOS 5 更新为 iOS 6,将我的 Mac OS 更新为 10.7.5,但由于弃用问题,该项目无法运行。我用 iOS 6 中的新方法替换了所有方法,除了这个:

dispatch_get_current_queue()  

如何在 iOS 6 中替换此方法?

4

2 回答 2

4

这取决于您需要通过此调用实现什么。
Apple 声明无论如何它都应该用于调试。

也许队列无关紧要(因为您只需要一个后台队列)所以获得一个具有特定优先级的全局队列(dispatch_get_global_queue(dispatch_queue_priority_t priority, unsigned long flags);

或者,

如果您确实需要在同一个队列中执行一些代码,请创建一个队列,保留它并在那里调度您的所有任务。

于 2012-10-11T14:53:30.710 回答
2

怎么用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(...);
             }];
         }
    });
于 2013-11-09T16:03:58.047 回答