2016-05-24 11 views
0

私が理解しているところでは、メインキューからしかUIを更新できないので、なぜこのコードが動作していますか?このUI更新コードはなぜ機能していますか?

dispatch_sync(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)) { 

      self.myLabel.text = "Updated text" 
     } 

QOS_CLASS_BACKGROUNDが提供するキューは間違いなくメインキューではありません!

答えて

2

バックグラウンドキューからUIを更新することはできません。それは定義されておらず、正しく動作しない可能性があるためです。

+0

ありがとう、私はそれを実行する際に必ずランタイムエラーがあると思った! –

+1

一般的に、一部のUIKitコードではメッセージが表示され、今後のバージョンのiOSで例外が発生することがあります。 – rmaddy

+0

しかし、少し異なる質問よりも、QOS_USER_INTERACTIVEのポイントは何ですか?このキューに提出された作業は、メインスレッドの権利では発生しません。では、なぜこのキューはまだユーザーのインタラクティブな要素に専念していますか? –

関連する問題