let queue = dispatchQueue(label: "com.example.imagetransform")
我正在观看使用Swift 3的WWDC Concurrency,以及上面提到的演示者,队列的标签显示在调试器中.我想知道,除此之外,引用该队列的名称是有意义的还是有用的,或者这些队列遵循与其他类型的数据结构相同的范围规则(以便队列声明仅在其范围内有意义).
即使队列声明只在其范围内有意义,如果我这样做会发生什么?
let queue1 = dispatchQueue(label: "com.example.imagetransform")let queue2 = dispatchQueue(label: "com.example.imagetransform")
这些队列实际上是否相同,以便如果我首先说一个作业添加到queue1然后将作业添加到queue2,那么queue2的作业实际上与queue1的作业在同一行?
解决方法Are dispatch queue names in iOS meaningful for any reason other than deBUGging?
它们的主要目的是进行调试.理论上,您可以将其用于其他目的(可通过label属性访问),但建议您将其用于诊断目的.
Are these queues actually the same so that if I first say add a job to
queue1
and then add a job toqueue2
,isqueue2
‘s job is actually on the same line asqueue1
‘s job?
不,他们是不同的队列,提交给一个人的任务与提交给另一个人的任务完全无关.它们碰巧具有相同的名称,这只会让调试变得更加混乱.
我们中的大多数人倾向于给他们提供仍然可以捕获功能意图的名称但是使它们成为简化调试的唯一名称,例如:
let queue1 = dispatchQueue(label: "com.example.imagetransform.1")let queue2 = dispatchQueue(label: "com.example.imagetransform.2")总结
以上是内存溢出为你收集整理的iOS中的调度队列名称是否因调试之外的任何原因而有意义?全部内容,希望文章能够帮你解决iOS中的调度队列名称是否因调试之外的任何原因而有意义?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)