我正在使用 iOS 5 中的 xmppframework 开发一个聊天应用程序;它完美地工作。
但是我将 Xcode 更新为 4.5.1,将 iOS 5 更新为 iOS 6,将我的 Mac OS 更新为 10.7.5,但由于弃用问题,该项目无法运行。我用 iOS 6 中的新方法替换了所有方法,除了这个:
dispatch_get_current_queue()
如何在 iOS 6 中替换此方法?
我正在使用 iOS 5 中的 xmppframework 开发一个聊天应用程序;它完美地工作。
但是我将 Xcode 更新为 4.5.1,将 iOS 5 更新为 iOS 6,将我的 Mac OS 更新为 10.7.5,但由于弃用问题,该项目无法运行。我用 iOS 6 中的新方法替换了所有方法,除了这个:
dispatch_get_current_queue()
如何在 iOS 6 中替换此方法?
这取决于您需要通过此调用实现什么。
Apple 声明无论如何它都应该用于调试。
也许队列无关紧要(因为您只需要一个后台队列)所以获得一个具有特定优先级的全局队列(dispatch_get_global_queue(dispatch_queue_priority_t priority,
unsigned long flags);
)
或者,
如果您确实需要在同一个队列中执行一些代码,请创建一个队列,保留它并在那里调度您的所有任务。
怎么用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(...);
}];
}
});