我正在使用xmppframework在iOS 5上开发一款聊天应用程序,它工作得非常好。
但是我将Xcode更新到4.5.1,iOS 5更新到iOS 6,Mac OS更新到10.7.5后,由于弃用问题,该项目无法正常工作。我已经替换了所有在iOS 6中被弃用的方法,唯独这一个没有:
dispatch_get_current_queue()
如何在 iOS 6 中替换此方法?
我正在使用xmppframework在iOS 5上开发一款聊天应用程序,它工作得非常好。
但是我将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(...);
}];
}
});
dispatch_get_current_queue
没有被弃用。你看到了什么错误或警告? - Noah Witherspoon