2016-06-14 1 views
3

私はスウィフト2でこのようなコードを持っている:Swift 3でQoS属性を指定してdispatch_queueを作成するにはどうすればよいですか?

let attrs = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_UTILITY, 0) 
let myQueue = dispatch_queue_create("com.example.serial-queue", attrs) 

dispatch_queue_attr_make_with_qos_classdispatch_queue_createが利用できないので、これは、スウィフト3でコンパイルされません。カスタムQoSクラスを使用してシリアルキューを作成するにはどうすればよいですか?

+2

私はあなたがに実行して問題を文書化するために時間がかかることを理解します。私はいつもあなたの材料に触れています – Alexander

+0

@AMomchilov私は本当にうれしく思っています。 – jtbandes

答えて

6

DispatchQueueclassになりました。init(label:attributes:target:)イニシャライザを使用できます。属性はDispatchQueueAttributesという名前のOptionSetになり、インスタンスは.serial.qosUtilityとなります。

一緒にそれを置く:

let myQueue = DispatchQueue(label: "com.example.serial-queue", 
          attributes: [.serial, .qosUtility]) 
+3

Swift 3(XCode 8 Beta 6)をテストした最後のバージョンでは、この宣言によってエラーメッセージ "Type" DispatchQueue.Attributes 'にはメンバー'シリアル 'はありません。それを強制的にシリアルキューにする方法に関する考え方はありますか? – nbloqs

+3

シリアルがデフォルトです。 – jtbandes