Webservicecall などを実行する場合は、次のような非同期呼び出しをディスパッチします。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
//Call your webservice here , your app will not freeze at all
});
ここで、ディスパッチされたスレッドから ViewController を更新またはプッシュするとします。このスレッドから ViewController を直接プッシュすると、アプリがクラッシュするか、またはクラッシュする可能性があります。このような UI の更新はアプリのメイン スレッドで行う必要があるため、以下がこれに対する答えです。それから。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
//Call your webservice here , your app will not freeze at all
//To update UIFrom dispatched Thread:
dispatch_async(dispatch_get_main_queue,^{
//Push view controller here
});
});
詳細については、 blackberrymastercracks.blogspot.inをご覧ください。