2016-07-20 4 views
1

私はこのような宣言について思ったんだけど:iOSのディスパッチキュー名は、デバッグ以外の理由で意味がありますか?

let queue = DispatchQueue(label: "com.example.imagetransform") 

私はキューのラベルがデバッガに表示されていることスウィフト3とのWWDC同時実行を見て、上で述べたプレゼンターました。私は、これとは別に、そのキューを参照するのに意味のある、または有用な名前か、またはこれらのキューが他の種類のデータ構造と同じスコープ規則に従う(キューの宣言がスコープ内でのみ意味を持つようにする)のだろうかと疑問に思っています。

キューの宣言がスコープ内でのみ意味があるとしても、これを行うとどうなりますか?私が最初にキュー2の仕事はQUEUE1の仕事と同じ行に実際にあり、QUEUE1、その後、キュー2にジョブを追加するためのジョブを追加すると言う場合

let queue1 = DispatchQueue(label: "com.example.imagetransform") 
let queue2 = DispatchQueue(label: "com.example.imagetransform") 

は実際にそのように同じこれらのキューはありますか?

+0

ありません...あなたは「Cheeseburger.Hotdogをそれに名前を付けることができます。あなたがしたい場合は "FrenchFries" –

答えて

0

ラベルは「ラベル」と同じです。セマンティクスはなく、スコープに影響を与えません。これは純粋に "あなたの情報のため"です(ほとんどの場合、 "デバッグ"を意味します)。

0

iOSのディスパッチキュー名は、デバッグ以外の理由で意味がありますか?

主な目的はデバッグです。あなたは理論的にはそれを他の目的のために使うことができます(labelプロパティからアクセスできます)。しかし、単純に診断目的で使用することをお勧めします。

私が最初queue1にジョブを追加し、その後queue2にジョブを追加言えば、queue2の仕事の仕事はqueue1と同じ行に、実際には 'されるように、実際には同じこれらのキューはありますか?

いいえ、それらは別個のキューであり、1つに送信されたタスクは、他のタスクに送信されたタスクとはまったく関係ありません。彼らはちょうどデバッグをちょっと混乱させるだけで、同じ名前を持つようになります。

私たちのほとんどは、例えば、彼らにはまだ機能的意図を取り込むが、デバッグを容易にするためにそれらがユニークになるだろう名前を与えるために傾くことになります。

let queue1 = DispatchQueue(label: "com.example.imagetransform.1") 
let queue2 = DispatchQueue(label: "com.example.imagetransform.2") 
関連する問題