Objective-C
メインスレッドを止めないためにdispatch_asyncを使ってネットワーク処理をバックグラウンドで行っていた。
ネットワーク処理が完了次第メインスレッドでUIを変更するのが普通だが誤ってバックグラウンド側でUIをいじる処理を書いたら、
iPhone5 iOS6ではスクロールするたびにステータスバーがチカチカしておかしくなった。
当然だけどUIをいじったりする処理はメインスレッドでやろうって話。
//バックグラウンド処理
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//ネットワークとかの重い処理を書く
//ここにUIをいじる処理を書いた事によってステータスバーがチカチカしたりおかしくなった
//メインスレッド
dispatch_async(dispatch_get_main_queue(), ^{
//本来はここでUIをいじったりする
});
})
コメント
コメントを投稿