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(...);
}];
}
});