2012-02-08 57 views
1

我使用的是相当不错的tutotial我已经找到了GCD,它展示了如何声明一个新的调度队列。如何声明大中央调度

大中央调度运行时使用队列。队列是一个C的typedef: dispatch_queue_t。为了得到一个新的全球性的队列,我们​​称之为 dispatch_get_global_queue(),它有两个参数:一个长 优先级和一个unsigned long的选择,这是不使用的,所以我们会 通0ul。下面是我们如何得到一个高优先级队列:

在它上面说通过0ul在像这样

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 

林希望有人能向我解释什么是0ul参数?为什么包括它?

回答

4

这只是0和UL告诉你希望它是一个unsigned long以匹配函数签名的编译器。

dispatch_queue_t dispatch_get_global_queue(长的优先级,无符号长标志);

如果不加UL的0将在整数得到视为这可能会导致一个编译器警告。

请在文档看这里。

https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html

+0

啊权利,因此多数民众赞成设置标记(由于缺乏一个更好的词)的,将在队列中的对象..它没有任何与数据类型,我想要多线程等? – 2012-02-08 02:21:39

+0

它没有任何影响,如果你看的文档,你会看到它是一个未使用的参数,因此0 – Gary 2012-02-08 02:23:59

+0

冷静,感谢您的答复得到它的工作..我觉得这应该是更复杂的(是多线程)但它不是!太奇怪了! – 2012-02-08 02:33:47