2016-05-24 67 views
0

在iOS上,UI只能通過主線程更新,但是令我感興趣的是在文檔中,用戶交互服務質量定義如下:QoS用戶交互和更新UI

與用戶進行交互的工作,例如在主線程 上運行,刷新用戶界面的或執行動畫。如果 工作不會很快發生,則用戶界面可能會凍結。 專注於響應能力和性能。

問題是,如果您使用該QoS調用dispatch_get_global_queue,則返回的隊列將不是主隊列,對嗎?因此,如何工作提交到該隊列刷新UI?

謝謝。

回答

2

Dispatch_get_global_queue將始終爲您提供全局併發隊列。除了main之外的任何隊列中,您都不能更新該隊列中的ui。

與用戶交互式Qos一樣,它用於對ui至關重要的工作,並且結果需要儘可能快。

一個很好的例子是你有一個需要處理的圖像。您可以使用User-Interactive Qos在global_queue中處理圖像,並在完成後將結果圖像設置在imageView中(此操作在主隊列中完成)。

+0

謝謝!現在我明白了。 –